docs: function(data) {
  				var commandInvocation = data;
  				var item = data.items;
  				var service = serviceRegistry.getService("orion.git.provider"); //$NON-NLS-0$
  				var messageService = serviceRegistry.getService("orion.page.message"); //$NON-NLS-0$
  				var progressService = serviceRegistry.getService("orion.page.progress"); //$NON-NLS-0$
  				
  				var msg = item.Name ? i18nUtil.formatMessage(messages["Checking out branch ${0}..."], item.Name) : messages["Checking out branch..."];
  				messageService.setProgressMessage(msg);
  					
  				if (item.Type === "Branch") { //$NON-NLS-0$
  					progressService.progress(service.checkoutBranch(item.CloneLocation, item.Name), msg).then(
  						function(){
  							messageService.setProgressResult(messages["Branch checked out."]);
  							dispatchModelEventOn({type: "modelChanged", action: "checkout"}); //$NON-NLS-1$ //$NON-NLS-0$
  						},
  						 function(error){
  							displayErrorOnStatus(error);
  						 }
  					);
  				} else {
  					var branchLocation;
  					if (item.Repository) {
  						branchLocation = item.Repository.BranchLocation;
  					} else {
  						branchLocation = item.parent.parent.repository.BranchLocation;
  					}
  					
  					var addMsg = i18nUtil.formatMessage(messages["Adding branch ${0}..."], item.Name);
  					progressService.progress(service.addBranch(branchLocation, null, item.Name), addMsg).then(
  						function(branch){
  							progressService.progress(service.checkoutBranch(branch.CloneLocation, branch.Name), msg).then(
  								function(){
  									messageService.setProgressResult(messages['Branch checked out.']);
  									dispatchModelEventOn({type: "modelChanged", action: "checkout"}); //$NON-NLS-1$ //$NON-NLS-0$
  								},
  								function(error){
  									if(error.status===409){
  										commandInvocation.parameters = branchNameParameters;
  										commandService.collectParameters(commandInvocation);
  									}
  									displayErrorOnStatus(error);
  								}
  							);
  						},
  						function(error){
  							displayErrorOnStatus(error);
  						 }
  					);
  				}
  			}