Vault can't undo its own action
Moderator: SourceGear
Vault can't undo its own action
"The path is too long after being fully qualified. Make sure path is less than 260 characters."
I'm trying to undo some checkouts I made earlier.
I don't know what to do now?
I'm trying to undo some checkouts I made earlier.
I don't know what to do now?
It kind of worked
Whoops, I thought that that error message meant it was failing, but it worked -- kind of -- now all the files are no longer checked out, and half are marked renegade.
When I do a Get Latest Version to try to fix those Renegade files, I get a "Locally Modified File" dialog, which has a multiline label on top which is overflowed, so I cannot read the paths. That should be a readonly edit box probably. (It looks really terrible, because the bottom line is cut off halfway vertically.)
When I do a Get Latest Version to try to fix those Renegade files, I get a "Locally Modified File" dialog, which has a multiline label on top which is overflowed, so I cannot read the paths. That should be a readonly edit box probably. (It looks really terrible, because the bottom line is cut off halfway vertically.)
.net exception trace back for failing file
GetLatestVersion failed on one file:
Local file update for $/vault/path/filename failed: System.IO.PathTooLongException: The path is too long after being fully qualified. Make sure path is less than 260 characters.
at System.IO.Path.nGetFullPathHelper(String path, Char[] invalidPathChars, Char[] whitespaceChars, Char directorySeparator, Char altDirectorySeparator, Char volumeSeparator, Boolean fullCheck, String& newPath)
at System.IO.Path.GetFullPathInternal(String path)
at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
at VaultClientOperationsLib.WorkingFolder.BackupFile(String filename)
at VaultClientOperationsLib.WorkingFolder.UpdateWorkingFile(VaultClientFile file, Int64 targetVersion, Int64 displayVersion, MergeType merge, DateTime dt, Boolean makeBackups, OverwritePrompt PromptData)
at VaultClientOperationsLib.WorkingFolder.UpdateWorkingFile(VaultClientFile file, Int64 targetVersion, Int64 displayVersion, MergeType merge, DateTime dt, 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)
Local file update for $/vault/path/filename failed: System.IO.PathTooLongException: The path is too long after being fully qualified. Make sure path is less than 260 characters.
at System.IO.Path.nGetFullPathHelper(String path, Char[] invalidPathChars, Char[] whitespaceChars, Char directorySeparator, Char altDirectorySeparator, Char volumeSeparator, Boolean fullCheck, String& newPath)
at System.IO.Path.GetFullPathInternal(String path)
at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
at VaultClientOperationsLib.WorkingFolder.BackupFile(String filename)
at VaultClientOperationsLib.WorkingFolder.UpdateWorkingFile(VaultClientFile file, Int64 targetVersion, Int64 displayVersion, MergeType merge, DateTime dt, Boolean makeBackups, OverwritePrompt PromptData)
at VaultClientOperationsLib.WorkingFolder.UpdateWorkingFile(VaultClientFile file, Int64 targetVersion, Int64 displayVersion, MergeType merge, DateTime dt, 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)
Most likely you are running into a path length limitation in .NET.
See this for more info:
http://support.sourcegear.com/viewtopic.php?t=1965
See this for more info:
http://support.sourcegear.com/viewtopic.php?t=1965
Linda Bauer
SourceGear
Technical Support Manager
SourceGear
Technical Support Manager
-
- Posts: 112
- Joined: Mon May 01, 2006 10:50 pm
- Location: Birmingham, AL
MS already has Unicode functions for allowing up to 32000 character paths. Note that you can create files not accessible via the normal API calls when using these, causing such annoying effects such as the inablitity to delete the file from windows explorer.
See http://msdn2.microsoft.com/en-us/library/aa365247.aspx for more info.
See http://msdn2.microsoft.com/en-us/library/aa365247.aspx for more info.
As I stated before, the Vault code itself has not imposed this limitation, but rather this is an error thrown by the .NET Framework.
Now, many versions of .NET Framework have been released since the original post. I haven't tried it, but I wonder if MS has fixed these problems in the later releases.
Now, many versions of .NET Framework have been released since the original post. I haven't tried it, but I wonder if MS has fixed these problems in the later releases.
Jeff Clausius
SourceGear
SourceGear