Vault Client/Server version 3.5.0.4741
We just switched from VSS to Vault and have a number of issues to report / resolve.
Most serious:
1. Vault's merge tool (so far used only through VS2005 IDE) has been seen to involve a "second file" in the merge, i.e. other than the local working copy or repository version of the "one" file in question.
Upon check-in under the IDE if Vault determines that a file might need a merge operation a dialog is displayed giving the option to "resolve merge status", or diff or merge the file changes. In at least two instances invoking the Merge option resulted in a dialog with sane left/right pane contents, but an initial merge result that was a copy of a different file on disk of the same name (with contents that do not appear in either of the merge sources).
Less "scary" issues:
2. The web client has bugs in the handling of + characters in file names.
They get ommitted in listings of files/folders under a folder, and attempting to view the history for such an item fails. We had to rename several projects because "Vault doesn't support 'C++'". The GUI client had no such problems and we could find no other "unusual" characters that resulted in any difficulties.
3. "Show Differences" is disabled if no working copy is present.
Actually there is no way to change the "left side" of the diff to something other than the working copy of the currently selected folder/file. This means that one can't compare two different files/folders in the repository. Also, one can't use Vault's diff tool for items not in the repository. The second is somewhat "out of scope" for Vault, but it's frustrating that after switching our team to Vault I now have to go find a Diff Viewer to use (and we may as well get used to just one and ditch the one in Vault). Is there some other way to access the diff tool (separate executable, command line options to client, etc.)?
4. IDE Integration "Gaps" during Solution open process.
File/Project changes made by the IDE at the time of opening a Solution/Project result in files being marked Checked Out within the IDE, but not within the Vault Client. After this, a "compare" shows the files as different, but a "Get Latest Version" does not change the local file.
A way to reproduce this would be to make a C++/CLI Windows Forms application project and add an XML schema to it. The IDE will happily bulid a class header file from this (for relational database style access to data in this schema) and add a #include to "stdafx.h" to include that file. If you delete that #include from "stdafx.h", check-in the solution, close the solution, and re-open the solution the IDE will "dutifully" re-inject the #include immediately when the solution is opened.
The above setup is also how I ended up experiencing issue #1 as this creates a need to merge the file upon check-in. The "other file" whose contents became the initial merge result was another stdafx.h file in a separate project within the solution.
This "stdafx.h problem" was only mildly confusing, but I wonder how long it will be before the IDE decides to edit something in a Project/Solution file during this "dangerous time window".
Diff/Merge File Identity Confusion (and other)
Moderator: SourceGear
-
- Posts: 21
- Joined: Thu Sep 14, 2006 9:11 am
- Location: FLIR Systems Stillwater Oklahoma
-
- Posts: 21
- Joined: Thu Sep 14, 2006 9:11 am
- Location: FLIR Systems Stillwater Oklahoma
Follow-up: Status as of 4.0.2
Given that a new major version is out, I figured I'd give a status update to this old thread. For SourceGear/public reference I tested these out on the public demo server's "Initial Repository" under "$/v3 Bug Survival Test". So you can check them out there until SourceGear cleans up the demo server again. v4.0.4 is the current version of Vault, but I used v4.0.2 because that is what the public demo server is currently running.
1. Merge tool involving files other than the working and repository copies in the merge result.
I gave it a good try, but I cannot reproduce this using VS2005 SP1 and Vault v4.0.2. Hopefully, this has been fixed, but the only way I had to reliably provoke the error doesn't go the same using VS2005 SP1 as it did using a straight-up install of VS2005 (see also item 4).
2. The web client has bugs in the handling of + characters in file names.
Well Vault still doesn't support 'C++', but it gets further before choking.
The web client can now list these files/folders and even display the content of such folders, but attempting to view the history log of an item with a '+' in the path still produces an error.
Checkout $/v3 Bug Survival Test/Folder with C++ in Name and its Readme.txt file.
3. "Show Differences" is disabled if no working copy is present.
No apparent change. It's apparent that SourceGear has never seen the comparison of folders in the repository (such as two branches of the same project) to be a useful feature. To pull this off, you have to do a history on the folder, pick out a version and diff that against something else in the repository. The downside is you may have to label the folder in order to have a "grab spot" for the current version in the history view. And even if you do that, the diff won't work.
Vault "whiffs" comparisons between folders in a repository.
Specifically, it will report identical files within identically named subfolders to be present "only" in the "left side", *AND* to be present "only" in the "right side".
While it's still up you can see this by doing a folder diff between
Repo to Repo Folder Diff A
and
Repo to Repo Folder Diff B
of "$/v3 Bug Survival Test/" on the "Initial Repository" of the public demo server (vaultdemo.sourcegear.com).
To do the diff, do a "Show History..." or "Show Labels..." on "Repo to Repo Folder Diff A" and do a "Diff" on "Grab Label for Diff", then select the "Any repository folder/file" radio button and "Browse..." to "Repo to Repo Folder Diff B".
Provided noone has changed the folders too much you should get a result like the one in the attached screen shot.
4. IDE Integration "Gaps" during Solution open process.
Well, I can't get SP1 of VS2005 to edit files during the open process, so this concern seems to be moot at this point.
1. Merge tool involving files other than the working and repository copies in the merge result.
I gave it a good try, but I cannot reproduce this using VS2005 SP1 and Vault v4.0.2. Hopefully, this has been fixed, but the only way I had to reliably provoke the error doesn't go the same using VS2005 SP1 as it did using a straight-up install of VS2005 (see also item 4).
2. The web client has bugs in the handling of + characters in file names.
Well Vault still doesn't support 'C++', but it gets further before choking.
The web client can now list these files/folders and even display the content of such folders, but attempting to view the history log of an item with a '+' in the path still produces an error.
Checkout $/v3 Bug Survival Test/Folder with C++ in Name and its Readme.txt file.
3. "Show Differences" is disabled if no working copy is present.
No apparent change. It's apparent that SourceGear has never seen the comparison of folders in the repository (such as two branches of the same project) to be a useful feature. To pull this off, you have to do a history on the folder, pick out a version and diff that against something else in the repository. The downside is you may have to label the folder in order to have a "grab spot" for the current version in the history view. And even if you do that, the diff won't work.
Vault "whiffs" comparisons between folders in a repository.
Specifically, it will report identical files within identically named subfolders to be present "only" in the "left side", *AND* to be present "only" in the "right side".
While it's still up you can see this by doing a folder diff between
Repo to Repo Folder Diff A
and
Repo to Repo Folder Diff B
of "$/v3 Bug Survival Test/" on the "Initial Repository" of the public demo server (vaultdemo.sourcegear.com).
To do the diff, do a "Show History..." or "Show Labels..." on "Repo to Repo Folder Diff A" and do a "Diff" on "Grab Label for Diff", then select the "Any repository folder/file" radio button and "Browse..." to "Repo to Repo Folder Diff B".
Provided noone has changed the folders too much you should get a result like the one in the attached screen shot.
4. IDE Integration "Gaps" during Solution open process.
Well, I can't get SP1 of VS2005 to edit files during the open process, so this concern seems to be moot at this point.
- Attachments
-
- Heres what it looks like.PNG (9.58 KiB) Viewed 3233 times
Re: Diff/Merge File Identity Confusion (and other)
It's hard telling what you might have seen. One thing the merge tool does is use a file stored in a _sgvault directory at the time of the GET, the working folder's copy, and the version of the file in the repository. These are copied to temp files, so the merge tool can fold the changes into a new file (the middle view of the tool). Is it possible the file in the _sgvault directory was changed by a disk based find/replace? Is it possible the "different" file of the same present in the working folder? If so, then that would explain the results as the file in the working folder is used as a part of the merge.Virgil Smith wrote:1. Vault's merge tool (so far used only through VS2005 IDE) has been seen to involve a "second file" in the merge, i.e. other than the local working copy or repository version of the "one" file in question.
We will be addressing this in the upcoming Vault 3.5.3 and Vault 4.0.5 releases.Virgil Smith wrote:2. The web client has bugs in the handling of + characters in file names.
From the main GUI interface, Diff is keyed from working folders. Otherwise, Diff is keyed from the History Explorer.Virgil Smith wrote:3. "Show Differences" is disabled if no working copy is present.
Is it possible you disabled the Diff Command Dialog? Check the command dialog options to make sure the dialog is brought up during a Diff operation. From this you can Diff from the last time you performed a GET, the version in the repository, version in the working folder, a labeled file/folder, local file/folder or repository file/folder.Virgil Smith wrote:Actually there is no way to change the "left side" of the diff to something other than the working copy of the currently selected folder/file. This means that one can't compare two different files/folders in the repository.
You can change the overall Diff Tool within the Client's options for Diff/Merge. However, that is just one overall Diff Tool for all files. This functionality will be changing in a future release of Vault to allow for Diff Tool by file extenstion.Virgil Smith wrote:The second is somewhat "out of scope" for Vault, but it's frustrating that after switching our team to Vault I now have to go find a Diff Viewer to use (and we may as well get used to just one and ditch the one in Vault). Is there some other way to access the diff tool (separate executable, command line options to client, etc.)?
All GET operations within the MSSCCI client are set to merge in changes from new folders. To actually perform an "overwrite" operation, you need to change the Vault Options within Visual Studio's Advanced Source Control page to always show the Get Dialog. When you change this, a GET on the solution or project will prompt you with the Get to Merge or Overwrite. Choose overwrite.Virgil Smith wrote:4. IDE Integration "Gaps" during Solution open process.
Note, changing this is a hassle when performing a GET on a large group of files as the dialog is displayed for each and every file.
Jeff Clausius
SourceGear
SourceGear
Re: Follow-up: Status as of 4.0.2
There have been no changes in Vault 3.5.x and Vault 4.0.x in regards to how Merging has handled by a Merge tool. I refer to some possible problems in my previous post.Virgil Smith wrote:1. Merge tool involving files other than the working and repository copies in the merge result.
I gave it a good try, but I cannot reproduce this using VS2005 SP1 and Vault v4.0.2. Hopefully, this has been fixed, but the only way I had to reliably provoke the error doesn't go the same using VS2005 SP1 as it did using a straight-up install of VS2005 (see also item 4).
This is a useful feature, but the handling of this is done from the History Explorer. Also, if you need a specific version of a Folder, try invoking history and change the option to show History by Folder version.Virgil Smith wrote:3. "Show Differences" is disabled if no working copy is present.
This will also be fixed in Vault 3.5.3 and Vault 4.0.5.Virgil Smith wrote:Vault "whiffs" comparisons between folders in a repository.
Specifically, it will report identical files within identically named subfolders to be present "only" in the "left side", *AND* to be present "only" in the "right side".
Also see my previous post.Virgil Smith wrote:4. IDE Integration "Gaps" during Solution open process.
Jeff Clausius
SourceGear
SourceGear
-
- Posts: 21
- Joined: Thu Sep 14, 2006 9:11 am
- Location: FLIR Systems Stillwater Oklahoma
Re: Diff/Merge File Identity Confusion (and other)
In the cases that we saw this, if anything changed files in the _sgvault folder it was the vault client or the IDE integration. Personally, I'm more suspicious of a fault in determining the working folder for the file during some step leading up to the merge. However, unless we see it again and can reproduce the problem its a moot point.jclausius wrote:It's hard telling what you might have seen. One thing the merge tool does is use a file stored in a _sgvault directory at the time of the GET, the working folder's copy, and the version of the file in the repository. These are copied to temp files, so the merge tool can fold the changes into a new file (the middle view of the tool). Is it possible the file in the _sgvault directory was changed by a disk based find/replace? Is it possible the "different" file of the same present in the working folder? If so, then that would explain the results as the file in the working folder is used as a part of the merge.Virgil Smith wrote:1. Vault's merge tool (so far used only through VS2005 IDE) has been seen to involve a "second file" in the merge, i.e. other than the local working copy or repository version of the "one" file in question.
Thanks!!jclausius wrote:We will be addressing this in the upcoming Vault 3.5.3 and Vault 4.0.5 releases.Virgil Smith wrote:2. The web client has bugs in the handling of + characters in file names.
Yep, that's how to get to the functionality. It seems rather counterintuitive, however, to have to invoke the history dialog to perform an operation on the current repository version.jclausius wrote:From the main GUI interface, Diff is keyed from working folders. Otherwise, Diff is keyed from the History Explorer.Virgil Smith wrote:3. "Show Differences" is disabled if no working copy is present.
Sorry, I shouldn't have referenced "left side" or "right side" in this discussion as Vault doesn't necessarily place "this" on the left side and "that" on the right side when comparing "this to that".jclausius wrote:Is it possible you disabled the Diff Command Dialog? Check the command dialog options to make sure the dialog is brought up during a Diff operation.Virgil Smith wrote:]Actually there is no way to change the "left side" of the diff to something other than the working copy of the currently selected folder/file. This means that one can't compare two different files/folders in the repository.
Doh! "Stupid user, read the screen." Thanks!jclausius wrote:Also, if you need a specific version of a Folder, try invoking history and change the option to show History by Folder version.
Thanks!!jclausius wrote:This will also be fixed in Vault 3.5.3 and Vault 4.0.5Virgil Smith wrote:]Vault "whiffs" comparisons between folders in a repository.
Specifically, it will report identical files within identically named subfolders to be present "only" in the "left side", *AND* to be present "only" in the "right side".