[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

RE: Re: TortoiseProc missing command line arguments

From: Hubsi <zerokelvin_at_gmx.net>
Date: Fri, 2 Mar 2012 16:26:44 -0800 (PST)

> thank you for the update! I guess it should work now, but looking at the code first confused me a lot (comments added):
>
> CString url = svn.GetURLFromPath(svnPath); ##sets url from wc path
> CString destUrl;
> if (m_URL != _T(""))
> {
> destUrl = m_URL; ##presets destUrl from public destination variable m_Url
> }
> m_URLCombo.LoadHistory(_T("Software\\TortoiseSVN\\History\\repoPaths\\")+sUUID, _T("url"));
> m_URLCombo.SetCurSel(0);
> if (!url.IsEmpty())
> {
> CString relPath = destUrl.Mid(m_repoRoot.GetLength());
> relPath = CPathUtils::PathUnescape(relPath);
> relPath.Replace('\\', '/');
> m_URLCombo.AddString(relPath, 0);
> m_URLCombo.SelectString(-1, relPath);
> m_URL = url; ## url now still contains source url from wc path and hereby resets m_URL - which just contained the destination. m_URL will anyway be updated when clicking the ok button, but I believe this line should better be changed
>
> SetDlgItemText(IDC_SRCURL, CTSVNPath(m_URL).GetUIPathString());
> SetDlgItemText(IDC_DESTURL, CTSVNPath(CPathUtils::CombineUrls(m_repoRoot, relPath)).GetUIPathString());
> }
>
>
> this would have been so much easier if I could have commited it myself... you could use this nicer version instead:
>
>
> CString url = svn.GetURLFromPath(svnPath);
> CString destUrl = url; ##added default variable assignment
> if (m_URL != _T(""))
> {
> destUrl = m_URL; ##presets destUrl from public destination variable m_Url
> }
> m_URLCombo.LoadHistory(_T("Software\\TortoiseSVN\\History\\repoPaths\\")+sUUID, _T("url"));
> m_URLCombo.SetCurSel(0);
> if (!url.IsEmpty())
> {
> CString relPath = destUrl.Mid(m_repoRoot.GetLength());
> relPath = CPathUtils::PathUnescape(relPath);
> relPath.Replace('\\', '/');
> m_URLCombo.AddString(relPath, 0);
> m_URLCombo.SelectString(-1, relPath);
> m_URL = destUrl;## used destUrl instead of url
>
> SetDlgItemText(IDC_SRCURL, CTSVNPath(m_URL).GetUIPathString());
> SetDlgItemText(IDC_DESTURL, CTSVNPath(CPathUtils::CombineUrls(m_repoRoot, relPath)).GetUIPathString());
> }

actually I now think that the default variable assignment must be used, otherwise destUrl will be empty, when not preset by a parameter! And I missed that the second last line should be
SetDlgItemText(IDC_SRCURL,CTSVNPath(url).GetUIPathString());

so in total:
     CString url = svn.GetURLFromPath(svnPath);
     CString destUrl = url; ##added default variable assignment
     if (m_URL != _T(""))
     {
         destUrl = m_URL; ##presets destUrl from public destination variable m_Url
     }
     m_URLCombo.LoadHistory(_T("Software\\TortoiseSVN\\History\\repoPaths\\")+sUUID, _T("url"));
     m_URLCombo.SetCurSel(0);
     if (!url.IsEmpty())
     {
         CString relPath = destUrl.Mid(m_repoRoot.GetLength());
         relPath = CPathUtils::PathUnescape(relPath);
         relPath.Replace('\\', '/');
         m_URLCombo.AddString(relPath, 0);
         m_URLCombo.SelectString(-1, relPath);
         m_URL = destUrl;## used destUrl instead of url
 
         SetDlgItemText(IDC_SRCURL, CTSVNPath(url).GetUIPathString()); ##changed to url variable (source)
         SetDlgItemText(IDC_DESTURL, CTSVNPath(CPathUtils::CombineUrls(m_repoRoot, relPath)).GetUIPathString());
     }

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2928885

To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2012-03-03 01:26:50 CET

This is an archived mail posted to the TortoiseSVN Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.