checkin taken as an add when invoked as a batch

If you are having a problem using Vault, post a message here.

Moderator: SourceGear

Post Reply
Dave Schulte
Posts: 55
Joined: Thu Dec 02, 2004 1:59 pm

checkin taken as an add when invoked as a batch

Post by Dave Schulte » Tue Dec 21, 2004 4:04 pm

Today, while concurrently importing (adding, deleting, checking out, and checking in) files against two different repository folders using vault.exe's BATCH command, I ran into a situation where a CHECKIN was interpreted as an ADD for some reason by the server. Attached is the log file showing the series of batched commands which failed.

Undoing my checkout operations and executing my import software for the same set of files worked fine the second time around.

This error occurred with Vault 3.0.

Here’s an excerpt from the import log. This is a complete log history for the import of Target Mobile.3.00.1016. The queued checkin is highlighted in red, along with the failure reported by Vault at the bottom.

The “Queuing” messages show what was queued as part of a given batch (there are two batches – one for a series of checkouts, and one for the corresponding series of checkins). The “Executing a batch” mesesage shows the execution of the BATCH command.

The item in red is the checkin that failed, and the error reported by Vault is at the end.

--------------------------------------------------------------------------------

Importing Target Mobile.3.00.1016.

Tue Dec 21 16:07:25 2004 - vimport.pl
vimport.pl: Removing files from 'C:\drschulte\tmp\Target Mobile Version 3'.

Tue Dec 21 16:07:26 2004 - vimport.pl
vimport.pl: Getting latest source from '$/Target Mobile Pocket Pro/Target Mobile Version 3'.

Tue Dec 21 16:07:51 2004 - vimport.pl
vimport.pl: Importing release...

Tue Dec 21 16:07:56 2004 - vimport.pl
vimport.pl: Updating file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/CallOrgDetail.cpp'.

Tue Dec 21 16:07:56 2004 - vimport.pl
vimport.pl: Queuing checkout of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/CallOrgDetail.cpp'.

Tue Dec 21 16:08:00 2004 - vimport.pl
vimport.pl: Updating file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/GlobalFuncs.cpp'.

Tue Dec 21 16:08:00 2004 - vimport.pl
vimport.pl: Queuing checkout of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/GlobalFuncs.cpp'.

Tue Dec 21 16:08:02 2004 - vimport.pl
vimport.pl: Updating file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/Login.cpp'.

Tue Dec 21 16:08:02 2004 - vimport.pl
vimport.pl: Queuing checkout of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/Login.cpp'.

Tue Dec 21 16:08:05 2004 - vimport.pl
vimport.pl: Updating file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/ProfileGeneric.cpp'.

Tue Dec 21 16:08:05 2004 - vimport.pl
vimport.pl: Queuing checkout of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/ProfileGeneric.cpp'.

Tue Dec 21 16:08:05 2004 - vimport.pl
vimport.pl: Updating file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/Records.h'.

Tue Dec 21 16:08:05 2004 - vimport.pl
vimport.pl: Queuing checkout of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/Records.h'.

Tue Dec 21 16:08:08 2004 - vimport.pl
vimport.pl: Updating file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/TargetMobile.rc'.

Tue Dec 21 16:08:08 2004 - vimport.pl
vimport.pl: Queuing checkout of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/TargetMobile.rc'.

Tue Dec 21 16:08:08 2004 - vimport.pl
vimport.pl: Updating file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/TargetMobile.vcc'.

Tue Dec 21 16:08:08 2004 - vimport.pl
vimport.pl: Queuing checkout of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/TargetMobile.vcc'.

Tue Dec 21 16:08:09 2004 - vimport.pl
vimport.pl: Updating file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/UnivEditProfile.cpp'.

Tue Dec 21 16:08:09 2004 - vimport.pl
vimport.pl: Queuing checkout of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/UnivEditProfile.cpp'.

Tue Dec 21 16:08:09 2004 - vimport.pl
vimport.pl: Updating file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/UnivEditProfile.h'.

Tue Dec 21 16:08:09 2004 - vimport.pl
vimport.pl: Queuing checkout of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/UnivEditProfile.h'.

Tue Dec 21 16:08:09 2004 - vimport.pl
vimport.pl: Updating file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/UnivEditSpec.cpp'.

Tue Dec 21 16:08:09 2004 - vimport.pl
vimport.pl: Queuing checkout of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/UnivEditSpec.cpp'.

Tue Dec 21 16:08:10 2004 - vimport.pl
vimport.pl: Updating file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/UnivProfile.cpp'.

Tue Dec 21 16:08:10 2004 - vimport.pl
vimport.pl: Queuing checkout of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/UnivProfile.cpp'.

Tue Dec 21 16:08:10 2004 - vimport.pl
vimport.pl: Updating file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/UnivSearchDlg.cpp'.

Tue Dec 21 16:08:10 2004 - vimport.pl
vimport.pl: Queuing checkout of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/UnivSearchDlg.cpp'.

Tue Dec 21 16:08:10 2004 - vimport.pl
vimport.pl: Updating file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/UnivSpec.cpp'.

Tue Dec 21 16:08:10 2004 - vimport.pl
vimport.pl: Queuing checkout of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/UnivSpec.cpp'.

Tue Dec 21 16:08:10 2004 - vimport.pl
vimport.pl: Updating file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/WM2003.VCO'.

Tue Dec 21 16:08:10 2004 - vimport.pl
vimport.pl: Queuing checkout of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/WM2003.VCO'.

Tue Dec 21 16:08:16 2004 - vimport.pl
vimport.pl: Updating file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/stdafx.cpp'.

Tue Dec 21 16:08:16 2004 - vimport.pl
vimport.pl: Queuing checkout of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/stdafx.cpp'.

Tue Dec 21 16:08:16 2004 - vimport.pl
vimport.pl: Updating file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/stdafx.h'.

Tue Dec 21 16:08:16 2004 - vimport.pl
vimport.pl: Queuing checkout of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/stdafx.h'.

Tue Dec 21 16:08:16 2004 - vimport.pl
vimport.pl(executeBatch): Executing a batch of Vault commands.

Tue Dec 21 16:08:31 2004 - vimport.pl
vimport.pl: Queuing checkin of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/CallOrgDetail.cpp'.

Tue Dec 21 16:08:31 2004 - vimport.pl
vimport.pl: Queuing checkin of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/GlobalFuncs.cpp'.

Tue Dec 21 16:08:31 2004 - vimport.pl
vimport.pl: Queuing checkin of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/Login.cpp'.

Tue Dec 21 16:08:31 2004 - vimport.pl
vimport.pl: Queuing checkin of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/ProfileGeneric.cpp'.


Tue Dec 21 16:08:31 2004 - vimport.pl
vimport.pl: Queuing checkin of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/Records.h'.

Tue Dec 21 16:08:31 2004 - vimport.pl
vimport.pl: Queuing checkin of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/TargetMobile.rc'.

Tue Dec 21 16:08:31 2004 - vimport.pl
vimport.pl: Queuing checkin of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/TargetMobile.vcc'.

Tue Dec 21 16:08:31 2004 - vimport.pl
vimport.pl: Queuing checkin of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/UnivEditProfile.cpp'.

Tue Dec 21 16:08:31 2004 - vimport.pl
vimport.pl: Queuing checkin of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/UnivEditProfile.h'.

Tue Dec 21 16:08:31 2004 - vimport.pl
vimport.pl: Queuing checkin of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/UnivEditSpec.cpp'.

Tue Dec 21 16:08:31 2004 - vimport.pl
vimport.pl: Queuing checkin of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/UnivProfile.cpp'.

Tue Dec 21 16:08:31 2004 - vimport.pl
vimport.pl: Queuing checkin of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/UnivSearchDlg.cpp'.

Tue Dec 21 16:08:31 2004 - vimport.pl
vimport.pl: Queuing checkin of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/UnivSpec.cpp'.

Tue Dec 21 16:08:31 2004 - vimport.pl
vimport.pl: Queuing checkin of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/WM2003.VCO'.

Tue Dec 21 16:08:31 2004 - vimport.pl
vimport.pl: Queuing checkin of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/stdafx.cpp'.

Tue Dec 21 16:08:31 2004 - vimport.pl
vimport.pl: Queuing checkin of file '$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/stdafx.h'.

Tue Dec 21 16:08:31 2004 - vimport.pl
vimport.pl(executeBatch): Executing a batch of Vault commands.
Can't spawn "cmd.exe": Operation not permitted at C:/drschulte/Dynamic/Projects/VaultEvaluation/vimport/bin/vimport.pl line 1523.
<vault>
<changeset>
<ModifyFile id="0" repospath="$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/CallOrgDetail.cpp" localpath="C:\drschulte\tmp\Target Mobile Version 3\Target Mobile\CallOrgDetail.cpp" />
</changeset>
<!-- Preparing data to begin transaction -->
<!-- Beginning transaction -->
<!-- Check in $/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/CallOrgDetail.cpp -->
<!-- Ending the transaction -->
<!-- Transaction completed successfully -->
<changeset>
<ModifyFile id="0" repospath="$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/GlobalFuncs.cpp" localpath="C:\drschulte\tmp\Target Mobile Version 3\Target Mobile\GlobalFuncs.cpp" />
</changeset>
<!-- Preparing data to begin transaction -->
<!-- Beginning transaction -->
<!-- Check in $/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/GlobalFuncs.cpp -->
<!-- Ending the transaction -->
<!-- Transaction completed successfully -->
<changeset>
<ModifyFile id="0" repospath="$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/Login.cpp" localpath="C:\drschulte\tmp\Target Mobile Version 3\Target Mobile\Login.cpp" />
</changeset>
<!-- Preparing data to begin transaction -->
<!-- Beginning transaction -->
<!-- Check in $/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/Login.cpp -->
<!-- Ending the transaction -->
<!-- Transaction completed successfully -->
<changeset>
<ModifyFile id="0" repospath="$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/ProfileGeneric.cpp" localpath="C:\drschulte\tmp\Target Mobile Version 3\Target Mobile\ProfileGeneric.cpp" />
<AddFile id="1" repospath="$/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/ProfileGeneric.cpp" localpath="C:\drschulte\tmp\Target Mobile Update\Target Mobile.3.00.1011\Target Mobile\ProfileGeneric.cpp" />
</changeset>
<!-- Preparing data to begin transaction -->
<!-- Beginning transaction -->
<!-- Item $/Target Mobile Pocket Pro/Target Mobile Version 3/Target Mobile/ProfileGeneric.cpp caused the transaction to fail: An item with the same name or object id already exists in the selected folder. -->
<!-- Transaction failed -->
<result success="no" />
</vault>

Tue Dec 21 16:08:47 2004 - vimport.pl
vimport.pl(executeBatch): Error - BATCH failed.
vault cmd = '"C:\Program Files\SourceGear\Vault Client\vault.exe" BATCH -host "<server>" -user "dave.schulte" -password "xxxxxxx" -repository "Target SFA New" "C:\DOCUME~1\DAVESC~1.TAR\LOCALS~1\Temp\UizGrNvQpC"'
Error - import of Target Mobile.3.00.1016 failed.

jclausius
Posts: 3706
Joined: Tue Dec 16, 2003 1:17 pm
Location: SourceGear
Contact:

Post by jclausius » Tue Dec 21, 2004 10:34 pm

Is it possible, there was a left over ADD in the changeset? If an add failed, it will still exist in your change set, even if the file was added by another means.

If you run the CLC with LISTCHANGESET, is the file add still there? If so, anytime you commit, it is going to re-attempt the add file.

You can use UNDOCHANGESETITEM on the add file item to permanently remove it from your change set.
Jeff Clausius
SourceGear

Dave Schulte
Posts: 55
Joined: Thu Dec 02, 2004 1:59 pm

Post by Dave Schulte » Wed Dec 22, 2004 5:58 am

When I looked at the pending changeset tab there was a pending add for this file at the bottom of the change set, and then my checkout further up in the change set (implying that the add came before the checkin), however the file was already present in the Vault repository folder. This implies that the commit of the add probably did not complete fully, even though the file was in fact present with the correct version.

I also just ran into a situation where a checkin of a file appears to have succeeded, except that a new version was not in fact imported into Vault (almost like an automatic undocheckout took place). I'm wondering if we should start using the new checkusm support, instead of file modificaton time for the comparisons that Vault makes in deciding whether or not a file as changed. I'm sill investigating this one to see if this is indeed what went wrong.

Do you recommend upgrdading to 3.1 before doing so?

Dave Schulte
Posts: 55
Joined: Thu Dec 02, 2004 1:59 pm

Post by Dave Schulte » Wed Dec 22, 2004 7:01 am

The attached .doc file contains some detail related to the "checkin failure" that I noted most recently for this posting. Here, the checkin appears to have resulted in an "undocheckout" operation.
Attachments
BatchedCheckinBug2.doc
(497.5 KiB) Downloaded 577 times

Dave Schulte
Posts: 55
Joined: Thu Dec 02, 2004 1:59 pm

Post by Dave Schulte » Wed Dec 22, 2004 8:11 am

Note that running my import software again for the same release resulted in the checkout and checkin of TargetMobile.vcc alone, as expected. Please note that of the 400+ some releases that we have imported, this was the only occurrence of a checkout turning into an undo checkout. Also, given that the modification date/times of the file in Vault v.s. that being checked in were different, using the checksum support probably would not have added any value.

dan
Posts: 2448
Joined: Wed Dec 17, 2003 5:03 pm
Location: SourceGear
Contact:

Post by dan » Wed Dec 22, 2004 9:07 am

Vault does have a setting to undo checkout when it computes a CRC on both versions and determines they are the same. This doesn't sound like it would happen in your case, since the files were different. However, you might want to pull just those two versions into some other working folder and verify that Vault considers the file edited. I doubt this is a problem with our CRC computation, but if it is, we'd want to know about it.

In any case, I'm not quite sure what we should be looking at. Do you want us to look more closely at this particular failure, or are you just trying to get the import completed?

jclausius
Posts: 3706
Joined: Tue Dec 16, 2003 1:17 pm
Location: SourceGear
Contact:

Post by jclausius » Wed Dec 22, 2004 9:14 am

So this is an automated process.

Is it possible the changes between placing the file in the working folder and the commit is occuring so fast the .Net Framework's File System Watchers class is not seeing the change, thus updating the change set's status?

If you still have more importing to do, you could add "-unchanged checkin" to the commit command. This would force the checkin to occur even if the client's changeset things the file has not been modified.
Jeff Clausius
SourceGear

Dave Schulte
Posts: 55
Joined: Thu Dec 02, 2004 1:59 pm

Post by Dave Schulte » Wed Dec 22, 2004 9:22 am

Jeff's comment seems to make sense. Yes, it is quite possible that the updates are happening so fast that it might be causing trouble, especially, since this is the first occurrence in over 1000+ imports that I have done over the past two weeks (I've had to remport our source a couple of times due to other unrelated issues).

I will add the "-unchanged checkin" option to our CHECKIN commands.
Thanks.

Post Reply