Domanda

I am creating a clone of Merge Wizard of TFS to add new features.

I already merged with workspakce.Merge api. Now I need a way to programatically show the Pending Changes - Conflict Window.

I already have a IVsWindowFrame from PendingChangesExt like:

   GetStatus status = sourceExplorer.Workspace.Merge(sourcePath, targetPath, versionFrom, versionTo, LockLevel.None, RecursionType.Full, MergeOptionsEx.None);

   IVsWindowFrame frame = pendingChanges.VsWindowFrame;
   frame.Show(); 

When I call show(), the Pending Changes Window is refresh with checkout files, but I need to select the last button in this screen (Conflicts), to show the conflicts of Merge.

How could I programatically click on Conflict button on this screen through IVsWindowFrame ?

È stato utile?

Soluzione

I found a solution with help of Chad Boles:

public void refreshPendingChanges()
{
  Object customIn = null;
  Object customOut = null;

  //Show TfsPendingChanges
  m_applicationObject.ExecuteCommand("View.TfsPendingChanges", "");

  //Refresh
  m_applicationObject.Commands.Raise("{FFE1131C-8EA1-4D05-9728-34AD4611BDA9}", 4808, ref customIn, ref customOut);

  //Activate Source Explorer
  m_applicationObject.DTE.Windows.Item("{99B8FA2F-AB90-4F57-9C32-949F146F1914}").Activate(); //I get this GUID recording a Macro.
  //Show Conflicts
  m_applicationObject.DTE.ExecuteCommand("File.TfsResumeConflictResolution"); 
}

Thanks for Chad Boles, that said me about File.TfsResumeConflictResolution !

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top