Page 1 of 1

Working Folder Exception on ProcessCommandCheckout

Posted: Fri Jul 13, 2012 3:42 pm
by nbuckle
We're encountering exceptions intermittently when the following code is executed:

GetOptions getOptions2 = new GetOptions();
getOptions2.Recursive = true;
log.Debug("Checking out : " + solutionfilePath);
ServerOperations.ProcessCommandCheckout(new string[] { solutionfilePath }, true, true, getOptions2);

2012-07-13 16:01:20,510 [10] DEBUG ReconcileDependencyDialog - Checking out : $/Playstuff/branchtest/branches/branch_1.0.5.1/play.sln
2012-07-13 16:01:20,925 [10] ERROR ReconcileDependencyDialog - ReconcileDependencies() - CRASH There is no working folder specified for $/Playstuff/branchtest/branches/branch_1.0.5.1/play.sln
You can set one using SETWORKINGFOLDER or use a temporary working folder by using the -workingfolder option with GET.
at VaultClientIntegrationLib.ServerOperations.ProcessCommandCheckout(String[] objectPaths, Boolean checkoutExclusive, Boolean getLatest, GetOptions getOptions)
at FortressBranchingAddIn.ReconcileDependencyDialog.ReconcileDependencies()

This is happening for some users although they have working folders set within the Vault client. They have all inherited the working folder from the $ (root)

I can't tell from the interface if there is a way to specify that we want to use that inherited working folder. I need suggestions please

Re: Working Folder Exception on ProcessCommandCheckout

Posted: Fri Jul 13, 2012 3:54 pm
by Beth
Are you using Vault integrated with Visual Studio also? If so, then there could be conflicting working folders or VS could be binding a project at a different level than what the working folder is set for in Vault.

Re: Working Folder Exception on ProcessCommandCheckout

Posted: Tue Jul 24, 2012 2:14 pm
by nbuckle
Beth,

Yes, we're using the Fortress Visual Studio Enhanced Client integration.

Here is the call I'm making in code. It's a very simple checkout on a .sln file

Code: Select all

log.Debug("Checking out the solution file started");
                    log.Debug("Vault Server Login");
                    GetOptions getOptions2 = new GetOptions();
                    getOptions2.Recursive = true;
                    bool bExclusive = true;
                    bool bGetLatest = true;                    
                    log.Debug("Checking out : " + solutionfilePath);
                    //solutionfilePath is $/Playstuff/RisPortTest/branches/APP_RPT_DEV_1.0.5.1/RisPortTest.sln
                    ServerOperations.ProcessCommandCheckout(new string[] { solutionfilePath }, bExclusive, bGetLatest, getOptions2);
                    log.Debug("Checking out : " + projectfilePath);
                    ServerOperations.ProcessCommandCheckout(new string[] { projectfilePath }, bExclusive, bGetLatest, getOptions2);
                    log.Debug("Vault Server Logout");

at the point where ServerOperations.ProcessCommandCheckout is called I get the following exception

2012-07-23 15:58:29,474 [26] DEBUG ReconcileDependencyDialog - Checking out : $/Playstuff/RisPortTest/branches/APP_RPT_DEV_1.0.5.1/RisPortTest.sln
2012-07-23 15:58:29,655 [26] ERROR ReconcileDependencyDialog - ReconcileDependencies() - CRASH
There is no working folder specified for $/Playstuff/RisPortTest/branches/APP_RPT_DEV_1.0.5.1/RisPortTest.sln
You can set one using SETWORKINGFOLDER or use a temporary working folder by using the -workingfolder option with GET.
at VaultClientIntegrationLib.ServerOperations.ProcessCommandCheckout(String[] objectPaths, Boolean checkoutExclusive, Boolean getLatest, GetOptions getOptions)
at FortressBranchingAddIn.ReconcileDependencyDialog.ReconcileDependencies()


I do not encounter this exception on my machine, but when I deploy, other folks on my team encounter the above mentioned exception

Based on your post, I compared side my side the working folder bindings in VS2010 with the Fortress client. I also attempted to checkout the file directly from fortress with no issues or complaints about a working folder.

Thank you for your help Beth

Re: Working Folder Exception on ProcessCommandCheckout

Posted: Wed Jul 25, 2012 8:28 am
by nbuckle
Just a bit of additional information.

I was able to successfully check out the offending file via the vault client as well as via visual studio with no issues.

I also used the command line to perform the checkout with no errors. No exceptions related to working folder settings

Re: Working Folder Exception on ProcessCommandCheckout

Posted: Thu Jul 26, 2012 1:15 pm
by nbuckle
is anyone looking at this?

Re: Working Folder Exception on ProcessCommandCheckout

Posted: Thu Jul 26, 2012 2:07 pm
by Beth
The working folder is machine and user specific, so you may need to add the setting of working folders to your code.

When you were getting a success with the Vault GUI client, were you on the exact same machine, using the exact same user, checking out to the exact same location, and connecting to the same Vault server?

Re: Working Folder Exception on ProcessCommandCheckout

Posted: Thu Jul 26, 2012 3:48 pm
by nbuckle
I did my troubleshooting on the machines which were causing the exception to be thrown. I was able to checkout successfully on these machines using the Vault GUI client, Visual Studio 2010, and the command line tool. All test were performed with the machine users log in credentials to connect to the Vault server and yes we're all connected to the same server.

Re: Working Folder Exception on ProcessCommandCheckout

Posted: Fri Jul 27, 2012 11:01 am
by Beth
Just to make sure I understand then, the issue will happen on a machine that the command-line client appears to be working fine on, correct?

Is the working folder set at $ or on individual folders? Is it possible that the errors are happening just on areas that don't have a working folder or that any area is missing a working folder?

Can you have a particular file work fine and that same file then give an error (same user/machine/working folder/etc)?

Re: Working Folder Exception on ProcessCommandCheckout

Posted: Mon Jul 30, 2012 2:05 pm
by nbuckle
I was able to work around this issue by adding these additional lines of code:

Code: Select all

WorkingFolder currentWorkingFolder = null;

//Verify working folder exist for the file
VaultClientFolder vaultFolder = ServerOperations.ProcessCommandListFolder(projectRepositoryPathWithoutCodeLine + "/branches/" + targetBranchName, true);

if (vaultFolder != null)
    currentWorkingFolder = ServerOperations.client.ClientInstance.GetWorkingFolder(vaultFolder);

if (currentWorkingFolder == null)
    ServerOperations.SetWorkingFolder(projectRepositoryPathWithoutCodeLine + "/branches/" + targetBranchName, _solutionWorkingFilePath, false, true);
Thanks for helping me work through this

Re: Working Folder Exception on ProcessCommandCheckout

Posted: Mon Jul 30, 2012 3:44 pm
by Beth
Thank you for the update. I'm happy to hear you got it working.