AndreyNikiforov / vault2git

Converts vault repository to git
52 stars 51 forks source link

Vault2Git crashes if Vault path changed in earlier revisions #7

Closed murrayju closed 12 years ago

murrayju commented 12 years ago

I'm not sure if this is a bug that can be fixed in Vault2Git, or a bug in Vault itself. I have a Vault path that looks like this:

$/company/dev/proj1/

But this path has changed thoughout history. For revision 1, the path looked like this instead:

$/proj1/dev/

I configured Vault2Git with the current path (first one I listed), but it quickly fails with a 'System.Exception':

Unhandled Exception: System.Exception: $/company/dev/dev has no working folder set. at VaultClientIntegrationLib.GetOperations.performGetVersion(String objectPath, Int32 version, String strDestFolder, GetOptions getOptions) at VaultClientIntegrationLib.GetOperations.ProcessCommandGetVersion(String objectPath, Int32 version, GetOptions getOptions) at Vault2Git.Lib.Processor.vaultGet(String repoPath, Int64 version, Int64 txId) in D:\git\vault2git\Vault2GitLib\Processor.cs:line 378 at Vault2Git.Lib.Processor.Pull(IEnumerable`1 git2vaultRepoPath, Int64 limitCount) in D:\git\vault2git\Vault2GitLib\Processor.cs:line 139 at Vault2Git.CLI.Program.Main(String[] args) in D:\git\vault2git\Vault2GitCLI\Program.cs:line 140

The path given in the exception makes no sense, I don't think that path has ever existed. I tried a few modifications to the code to attempt to handle this, such as setting the working folder for the path in the exception, as well as setting it to the path that I expect it to be (second one listed). In either case, setting the working folder throws an exception "$/proj1/dev does not exist in the repository", which is correct for the current head of the repo.

Any idea how to fix/workaround this?

murrayju commented 12 years ago

I found a decent workaround. If you use ProcessCommandGetVersionToLocationOutsideWorkingFolder instead of ProcessCommandGetVersion, and then just use this.WorkingFolder as the destination path, it seems to work just fine.

AndreyNikiforov commented 12 years ago

I am glad you found solution. When I was experimenting with Vault, getting outside of working folder did not work properly [in my version], so I had to use working folder.

dmagliola commented 9 years ago

Thank you @murrayju for that solution! I had the exact same problem.

crossan007 commented 6 years ago

Thanks for sharing! I too had the same problem

crossan007 commented 6 years ago

@murrayju @dmagliola I know it's been a while..... Do you happen to recall if changing the method caused your time-per-commit to skyrocket? I'm seeing something like 20-30 seconds per "commit."

7 years of history is going to take a long time at this pace haha!