After getting the source code I discovered that this was because the check out was also performing a get of the files. See code below.
I don't think that the check out should automatically do a get. Really that behaviour should be controlled by an attribute.
I would be happy to fix the problem and make any required changes but it is not obvious how to contribute to this project.
Could you give me details please?
Thanks.
Mike
Code: Select all
private void CheckOut( string fileName )
{
string normalizedPath = RepositoryPath.NormalizeFolder( fileName );
if( IsVaultFolder( normalizedPath ) == true )
{
VaultClientFolder vaultClientFolder = ClientInstance.TreeCache.Repository.Root.FindFolderRecursive( normalizedPath );
ClientInstance.CheckOut( vaultClientFolder, true, VaultCheckOutType.CheckOut, comment );
ClientInstance.Get( vaultClientFolder, true, true, MakeWritableType.MakeAllFilesWritable, SetFileTimeType.Current, MergeType.OverwriteWorkingCopy, null );
VaultLog( vaultClientFolder.Name + " successfully checked out." );
}
if( IsVaultFile( normalizedPath ) == true )
{
VaultClientFile vaultClientFile = ClientInstance.TreeCache.Repository.Root.FindFileRecursive( normalizedPath );
ClientInstance.CheckOut( vaultClientFile, VaultCheckOutType.CheckOut, comment );
ClientInstance.Get( vaultClientFile, true, MakeWritableType.MakeAllFilesWritable, SetFileTimeType.Current, MergeType.OverwriteWorkingCopy, null );
VaultLog( vaultClientFile.Name + " successfully checked out." );
}
if( IsVaultFolder( normalizedPath ) == false && IsVaultFile( normalizedPath ) == false )
{
throw new BuildException( "File or folder " + normalizedPath + " not found for checkout.", Location );
}
}