Vault + CruiseControl.NET
Moderator: SourceGear
Vault + CruiseControl.NET
Apologies if this message is not strictly classed as Vault support but if anyone can help me it would be greatly appreciated.
I have a CruiseControl.NET project that is pulling files from a Vault repository. I am getting the Path Too Long error on one of the files, which is causing the get latest to fail and hence the build.
Is there any way to skip folders from a get latest request that are included in the repository folder but are not needed for the build?
For example, my repository root looks like:
$/Project/Trunk
--- Database
--- Solution
------ App1
------ App2
------ App3
--- Tools
Could I configure the CruiseControl.NET source control block so, upon getting the latest source from $/Project/Trunk into an empty folder, it can skip the Database sub folder?
Like I say, any assistance would be greatly appreciated.
Many thanks,
Tim
I have a CruiseControl.NET project that is pulling files from a Vault repository. I am getting the Path Too Long error on one of the files, which is causing the get latest to fail and hence the build.
Is there any way to skip folders from a get latest request that are included in the repository folder but are not needed for the build?
For example, my repository root looks like:
$/Project/Trunk
--- Database
--- Solution
------ App1
------ App2
------ App3
--- Tools
Could I configure the CruiseControl.NET source control block so, upon getting the latest source from $/Project/Trunk into an empty folder, it can skip the Database sub folder?
Like I say, any assistance would be greatly appreciated.
Many thanks,
Tim
Sorry, this is the exception in case it adds any further information:
I spotted it was thrown from processing a non working folder.
This is the command line that CruiseControl.NET generated:
Thanks again!
Code: Select all
System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
at System.IO.Path.NormalizePathFast(String path, Boolean fullCheck)
at System.IO.Path.GetDirectoryName(String path)
at VaultClientOperationsLib.ClientInstance.ProcessFile_NonWorkingFolder(String tempFile, VaultClientFile file, VaultResponseGetFile response, String ancestorFullPath, String ancestorDiskPath, SetFileTimeType setFileTime, MakeWritableType makeWritable, MergeType merge, OverwritePrompt PromptData)
at VaultClientOperationsLib.ClientInstance.ProcessGetFileRequests(GetFileInfo[] infos, MakeWritableType makeWritable, SetFileTimeType setFileTime, MergeType merge, Boolean updateHiddenFilesOnly, String ancestorFullPath, Boolean flat, String ancestorDiskPath, OverwritePrompt PromptData, Boolean isLabelGet, String currentPathToLabelItem, Int64 labelID, Boolean isRetry, Boolean isGetByDisplayVersion)
at VaultClientOperationsLib.ClientInstance.GetByDisplayVersionToNonWorkingFolder(VaultClientFile[] files, MakeWritableType makeWritable, SetFileTimeType setFileTime, String ancestorFullPath, String ancestorDiskPath, OverwritePrompt PromptData)
at VaultClientOperationsLib.ClientInstance.GetByDisplayVersionToNonWorkingFolder(VaultClientFolder folder, Boolean recursive, MakeWritableType makeWritable, SetFileTimeType setFileTime, String ancestorDiskPath, OverwritePrompt PromptData)
at VaultClientIntegrationLib.GetOperations.performGetVersion(String objectPath, Int32 version, String strDestFolder, GetOptions getOptions)
at VaultClientIntegrationLib.GetOperations.ProcessCommandGetVersionToLocationOutsideWorkingFolder(String objectPath, Int32 version, GetOptions getOptions, String destPath)
at VaultCmdLineClient.VaultCmdLineClient.ProcessCommand(Args curArg)
at VaultCmdLineClient.VaultCmdLineClient.Main(String[] args)
I spotted it was thrown from processing a non working folder.
This is the command line that CruiseControl.NET generated:
Code: Select all
Starting process [C:\Program Files\SourceGear\Vault Client\vault.exe] in working directory [D:\CruiseControl.NET.Working\Solutions\Project\Trunk\Working] with arguments [getversion 1590 $/Project/Trunk/ D:\CruiseControl.NET.Working\Solutions\Project\Trunk\Working -merge overwrite -makewritable -backup no -setfiletime checkin -host #host# -user #user# -password #password# -repository #Repository#]
Thanks again!
You could try cloaking them, then they should be ignored during Gets that are done at a folder level. To get on the file then, you would have to directly select it.Is there any way to skip folders from a get latest request that are included in the repository folder but are not needed for the build?
Your other option is to shorten the folder names.