Frage

Nehmen wir an, dass einige Entwickler in meinem Team seine Änderungen auf Eis gelegt, die er in Zweig A. tat, und ich arbeite auf einem Ast B. Kann ich seine Änderungen in den Zweig B unshelve? (Von GUI oder Eingabeaufforderung)

War es hilfreich?

Lösung

Die lassen sollten Sie dies tun.

C:\src\2\Merlin\Main>tfpt unshelve /?
tfpt unshelve - Unshelve into workspace with pending changes

Allows a shelveset to be unshelved into a workspace with pending changes.
Merges content between local and shelved changes. Allows migration of shelved
changes from one branch into another by rewriting server paths.

Usage: tfpt unshelve [shelvesetname[;username]] [/nobackup]
                     [/migrate /source:serverpath /target:serverpath]

 shelvesetname          The name of the shelveset to unshelve
 /nobackup              Skip the creation of a backup shelveset
 /migrate               Rewrite the server paths of the shelved items
                        (for example to unshelve into another branch)
 /source:serverpath     Source location for path rewrite (supply with /migrate)
 /target:serverpath     Target location for path rewrite (supply with /migrate)
 /nobackup              Skip the creation of a backup shelveset

Zum Beispiel eines shelve Satz zu fusionieren namens "Shelve Set Name" erstellt auf Branch1 zu Branch2 verwenden:

>tfpt unshelve "Shelve Set Name";domain\userName /migrate /source:"$/Project/Branch1/" /target:"$/Project/Branch2/"

Andere Tipps

Alternative Lösung TFPT, dass jede Datei zu verschmelzen vermeidet manuell

Das Problem mit dem TFS Power Tools ist, dass TFS Shelveset Handlanger .

  • Das Tool erscheint unter 'Extras' in VS2010
  • Führen Sie das 'Shelveset Handlanger' Tool, klicken Sie auf Suchen shelvesets zeigen
  • Rechtsklick auf Ihre Shelveset und wählen Sie 'Export Shelveset'
  • Speichern auf eine leere Stelle wie C:\temp\shelveset-name
  • haben jetzt eine komplette Verzeichnisstruktur enthält einfach die neuen Dateien
  • (Hinweis: Es gibt keine Fortschrittsbalken beim Export - also, wenn Sie eine große Shelveset haben, das eine lange Zeit, die Sie für den Export nimmt müssen nur in Windows Explorer überprüfen (Datei> Eigenschaften> Size), dass die Dateien noch kommen nach unten, wenn Sie denken, dass es gefroren ist).

    Sie jetzt müssen sie nur mit dem Windows Explorer auf den neuen Zweig kopieren über.

    Das funktioniert für mich:

    • zunächst die gesamte Lösung Checking out (in der neuen Niederlassung)
    • Schließen Sie diese Lösung
    • Nehmen Sie TFS offline aus VS ( Tool zu tun, diese ) - siehe unten, warum dies wichtig ist ...
    • Kopieren von Dateien in Windows Explorer über. Die Verzeichnisstruktur in c:\temp\shelveset-name muss umbenannt werden, um den neuen Zweig zu entsprechen. Tipp: Stellen Sie sicher, dass Sie an der richtigen Adresse kopieren !!!
    • Bringen VS online
    • Es sollte alle Änderungen finden und fügen Sie die neuen Dateien
    • Wenn es Sie fragt der Sourcecontrol sicher sein, zu binden, den Pfad zu überprüfen, für den neuen Zweig korrekt ist.
    • Test - und dann die neuen Dateien checkin

    Wichtig: Ich habe festgestellt, dass, wenn Sie zum ersten Mal nicht TFS offline nehmen dann werden Sie mit neuen Dateien am Ende (von Ihrem unshelves changeset) ohne ein wenig rotes Häkchen zeigen und Sie haben auszuschließen und sind sie wieder, um sie hinzuzufügen zu bekommen. Wenn jemand eine alternative Lösung für dieses Problem hat würde ich gerne wissen, -. Erfrischend nicht zu funktionieren scheint

    Die Lager Informationen umfassen den spezifischen Pfad, um ihn geht. Leider weiß ich nicht, jede automatischen Art und Weise zu jedem anderen Ort als der unshelve es zu den Akten gelegt wurde. Die Zeiten, will ich dies zu tun hatte ich die entsprechenden Dateien in dem neuen Zweig zu überprüfen, unshelve aus dem alten Zweig, kopieren Sie die Dateien manuell über.

    EDIT: Nun, ich glaube, ich war es auf die harte Art und Weise zu tun. Ich muss versuchen, Curt-Lösung. :)

    Ich habe gute Zeit dieses zu erhalten getan und ich einige Probleme zu überwinden hatte. Es ist möglich, aber hier einige Probleme und einige Regeln zu beachten, diese Probleme avois

    Fehler:

      

    nicht in der Lage auf den Arbeitsbereich bestimmen

    Diese besondere Problem wurde durch die Ausführung des Befehls von source Zweig Stammordner gelöst. Dies ist im Gegensatz zu einigen Antworten auf SO, wo sie sagen, „Ziel“ Zweig zu verwenden - nicht, verwenden Sie „Quelle“:

    cd [your !!source!! branch root]
    tfpt unshelve /migrate /source:"$/MyCollection/Development/Maint1.1" /target:"$/MyCollection/Development/Maint1.2" "myShelveset;UserName"
    

    Zweite Ausgabe erschien nach diesem. Scheinen, dass es nicht zu TFS-Server verbinden kann. Was ich realisiert habe ich mehrere VS installiert und an verschiedenen TFS-Server verbunden ist. Ich war mit VS12 und ich hatte Arbeitsplatz und Server-Verbindung. Aber ich wusste nicht, dass gleiche Verbindung repliziert werden muss, in VS13 für TFPT2013 arbeiten. Es verbindet sich mit demselben Server und Arbeitsbereich.

    Ich habe auch versucht es TFPT2015 mit zu tun, aber ich installiert es und es nicht installiert TFPT.exe daher war es nutzlos. Also versuchte ich von TFPT2013 zu TFS2015 und es funktionierte für diesen speziellen Befehl. Ich frage mich, warum nicht, wenn VS12 / 13 funktioniert gut gegen TFS2015?

    Zusammenfassend

    • Verwenden Sie CMD oder DevCMD - spielt keine Rolle,
    • run-Befehl von source Zweig Stammordner
    • überprüft Team Explorer Server-Verbindung für bestimmten VS
    • TF Power Tools 2013 Arbeit gegen TFS v15, zumindest migrate Option funktioniert
    Lizenziert unter: CC-BY-SA mit Zuschreibung
    Nicht verbunden mit StackOverflow
    scroll top