Hello,
I'm currently trying to integrate DiffMerge into harvest and discovered an issue which directly concerns DiffMerge, so I directly tried to execute it as if harvest would do it:
Command line and current folder:
C:\Documents and Settings\MyUserName\Local Settings\Temp\$HarvestCompareFile$>"c:\Program Files\DiffMerge\DiffMerge.exe" "Text_A.txt(v3)$Left1205511425$" "T
ext_B.txt(v3)$Right1205511427$"
Both files exist ofcause. The DiffMerge error message reads as followed:
Cannot stat file
Error: Failed to open 'C:\Documents and Settings\MyUserName\Local Settings\Temp$HarvestCompareFile$\Text_A.txt(v3)$Left1205511425$' for reading (error 3: the system cannot find the path specified.)Error: Failed to retrieve file times for 'C:\Documents and Settings\MyUserName\Local Settings\Temp$HarvestCompareFile$\Text_A.txt(v3)$Left1205511425$' (error 3: the system cannot find the path specified.)
If you look very closely, the backslash right bevor the $HarvestCompareFile$ is missing in the output. To me, it seems as it's being interpreted as an excaped character.
Thank you very much for your help,
Regards!
Romout
Edit: The problem also easily be reproduced using the explorer extension
Integration of DiffMerge into Harvest
Moderator: SourceGear
-
- Posts: 534
- Joined: Tue Jun 05, 2007 11:37 am
- Location: SourceGear
- Contact:
There's a problem with foo\$bar
There's a problem with the code that normalizes pathnames.
For some reason the default behavior is to expand environment
variables in pathnames. And when this is turned on, it sees the
"\$" in "foo\$bar" as an escape sequence to get a "$" in the
output and prevents "$bar from being evaluated.
BTW, it doesn't help to use /'s rather than \'s because the
normalization code swaps them back before doing the other
stuff.
I'll log a bug on this. In the mean time, a workaround would be
to not have file or directory names that start with "$".
jeff
For some reason the default behavior is to expand environment
variables in pathnames. And when this is turned on, it sees the
"\$" in "foo\$bar" as an escape sequence to get a "$" in the
output and prevents "$bar from being evaluated.
BTW, it doesn't help to use /'s rather than \'s because the
normalization code swaps them back before doing the other
stuff.
I'll log a bug on this. In the mean time, a workaround would be
to not have file or directory names that start with "$".
jeff
-
- Posts: 534
- Joined: Tue Jun 05, 2007 11:37 am
- Location: SourceGear
- Contact:
Re: Integration of DiffMerge into Harvest
I just noticed that this thread wasn't resolved.
The "foo\$bar" problem (item:13183) has been fixed. The fix is in the Vault 4.1.2 release,
the Fortress 1.1.2 release, and the standalone 3.2.0 DiffMerge release.
(If you haven't already downloaded 3.2.0, we will be releasing the 3.3.0 standalone release
sometime later this week (hopefully).)
jeff
The "foo\$bar" problem (item:13183) has been fixed. The fix is in the Vault 4.1.2 release,
the Fortress 1.1.2 release, and the standalone 3.2.0 DiffMerge release.
(If you haven't already downloaded 3.2.0, we will be releasing the 3.3.0 standalone release
sometime later this week (hopefully).)
jeff