I was working with some dlls and had some file locking issues (some program that I did not know about was trying to use the dlls while I was doing my file operations) that admittedly complicated the situation, but I don't understand how I got in the state I'm currently in.
I checked in two dlls. I had the latest version of the files and had them checked out. I overwrote them with two newer dlls. I then checked both files in. They successfully made it to the server and incremented the remote version from 4 to 5.
However, it seems that Vault tried to then overwrite my files with version 5 from the server, even though version 5 on the server and what I just checked in are, by definition, identical. This operation failed because something was locking the files.
Now I am stuck with version 4 locally and version 5 on the server. The status of the files is "needs merge." If I do a get latest, absolutely nothing happens (I expected it to overwrite my version 4 with the remote version 5, since dll files are not mergeable) despite the fact that I've restarted the computer to release the file lock.
I don't know how to get the files out of this state without deleting them locally and then doing Get Latest, but I don't feel I should have to do that.
Please advise.
Thanks.
I checked in a file, yet I don't have the latest version
Moderator: SourceGear
I've seen that too, when the compiler locks a file just as I'm checking it in.
I assume that it needs to copy the file to your working folder because keyword expansion can make the file on the server different than the local file.
If you hold down the shift key while doing the get latest, you can select "Overwrite" in the dialog that comes up.
I assume that it needs to copy the file to your working folder because keyword expansion can make the file on the server different than the local file.
If you hold down the shift key while doing the get latest, you can select "Overwrite" in the dialog that comes up.
Overwrite works, but I'm confused
Yes, Get Latest with overwrite works.
I'm confused, though, shouldn't the behavior for get latest be:
If the file is a mergeable type, merge the file.
Otherwise, overwrite the local file with the remote file.
What was it trying to do before I forced it to overwrite, merge binary files?
I'm confused, though, shouldn't the behavior for get latest be:
If the file is a mergeable type, merge the file.
Otherwise, overwrite the local file with the remote file.
What was it trying to do before I forced it to overwrite, merge binary files?
The other (default) option is "Attempt automatic merge." If Vault can't merge a file for some reason, it puts the file in a "needs merge" state so the user can resolve the merge manually.
Of course there's the other question of why binary files end up in a "needs merge" state. If you provide us specfic steps, we can try to reproduce this here.
A couple related questions would be:
Are *.dll files listed as mergeable in your Vault Admin Tool->Repository options?
Are you using keyword expansion that Greg alluded to?
Of course there's the other question of why binary files end up in a "needs merge" state. If you provide us specfic steps, we can try to reproduce this here.
A couple related questions would be:
Are *.dll files listed as mergeable in your Vault Admin Tool->Repository options?
Are you using keyword expansion that Greg alluded to?
Linda Bauer
SourceGear
Technical Support Manager
SourceGear
Technical Support Manager