I checked in a file, yet I don't have the latest version

This forum is now locked, since Gold Support is no longer offered.

Moderator: SourceGear

Locked
gsmalter
Posts: 115
Joined: Sat Jul 09, 2005 11:13 am

I checked in a file, yet I don't have the latest version

Post by gsmalter » Wed Sep 14, 2005 4:45 pm

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.

GregM
Posts: 485
Joined: Sat Mar 13, 2004 9:00 am

Post by GregM » Wed Sep 14, 2005 7:40 pm

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.

lbauer
Posts: 9736
Joined: Tue Dec 16, 2003 1:25 pm
Location: SourceGear

Post by lbauer » Thu Sep 15, 2005 8:38 am

gsmalter -- does Get Latest with overwrite resolve the problem?
Linda Bauer
SourceGear
Technical Support Manager

gsmalter
Posts: 115
Joined: Sat Jul 09, 2005 11:13 am

Overwrite works, but I'm confused

Post by gsmalter » Thu Sep 15, 2005 9:50 am

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?

lbauer
Posts: 9736
Joined: Tue Dec 16, 2003 1:25 pm
Location: SourceGear

Post by lbauer » Thu Sep 15, 2005 10:01 am

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?
Linda Bauer
SourceGear
Technical Support Manager

Locked