Frage

Ich bin mit meiner aktuellen Firma von TFS zu SVN (TortoiseSVN) gewechselt.Ich vermisse die „Shelve“-Funktion von TFS wirklich.Ich habe verschiedene Artikel darüber gelesen, wie man mit SVN „zurückgestellt“ wird, aber ich habe nichts gelesen, was eine sehr einfache Erfahrung zum „zurückstellen“ von Arbeiten ermöglicht.

Idealerweise würde ich dem TortoiseSVN-Kontextmenü zusätzliche Elemente hinzufügen – „Shelve“ und „Unshelve“.„Shelve“ würde den aktuellen Shelve-Satz entfernen und das Arbeitsverzeichnis unter einem geeigneten, durch Benutzeroptionen definierten Pfad hochladen.„Unshelve“ würde das Set mit der Arbeitskopie zusammenführen.

Gibt es so etwas?Kann jemand Möglichkeiten vorschlagen, diese Funktion in der GUI zu „hacken“?

Notiz:Der folgende Link erreicht nicht wirklich die Benutzererfahrung, die ich gesucht habe:

Subversion zurückstellen

Eines der großartigsten Dinge an TFS Shelve ist, wie einfach es zu bedienen ist ...

War es hilfreich?

Lösung

Die Einführung von Shelving in SVN beginnt mit Version 1.10, siehe Versionshinweise

Andere Tipps

Ich glaube nicht, dass SVN diese Funktion in das Serverprodukt integriert hat.Ich glaube auch nicht, dass so etwas in irgendeinem Client, den ich verwendet habe, emuliert wird, einschließlich TortoiseSVN.

Um dieses Problem zu umgehen, habe ich auf die Verwendung eines DVCS zurückgegriffen, z Git oder Mercurial, damit ich lokal verzweigen/zusammenführen/aufbewahren kann, bevor ich den Inhalt zurück an SVN übertrage.Es ist vielleicht ein bisschen umständlich, aber es funktioniert wirklich gut.

Wenn Sie verstehen, wie SVN-Zweige funktionieren, ist die Emulation von Shelve in SVN ein Kinderspiel:

  1. Erstellen Sie einen Zweig im Repository (auf dem Server).
  2. Wechseln Sie von Ihrer lokalen Kopie dorthin
  3. Übernehmen Sie Ihre Änderungen in den neuen Zweig
  4. Wechseln Sie von Ihrer lokalen Kopie zurück zum Trunk

Wenn Sie bereit sind, zu Ihren zurückgestellten Änderungen zurückzukehren („unshelve“), führen Sie einfach den Regalzweig wieder mit Ihrer lokalen Kopie zusammen.

Wenn Sie weder Befehlszeilen-SVN noch Tortoise SVN gut genug kennen, um die oben genannten Schritte auszuführen, finden Sie hier eine sehr detaillierte Schritt-für-Schritt-Anleitung, wie Sie dies in Tortoise SVN tun:

  1. Führen Sie „SVN Update“ durch, um Ihre Arbeitskopie auf die neueste Version des Trunks zu aktualisieren.Auf diese Weise bestehen die einzigen Unterschiede zwischen Ihrer lokalen Kopie und dem Trunk in Ihren Änderungen.
  2. Wählen Sie im Kontextmenü „Branch / Tag“ aus.
  3. Die Option „HEAD-Version im Repository“ ist standardmäßig ausgewählt.Behalte das.
  4. Ändern Sie die „An-URL“, um den Filialnamen anzugeben, z. B. http://server/repository/project1/branches/shelf1
  5. Aktivieren Sie das Kontrollkästchen „Arbeitskopie auf neuen Zweig/Tag umstellen“.
  6. Klicken Sie auf „OK“, um den Zweig zu erstellen und zu ihm zu wechseln
  7. Führen Sie „SVN Commit…“ aus und übernehmen Sie Ihre Änderungen in den neu erstellten Zweig
  8. Wählen Sie im Kontextmenü „Wechseln…“
  9. Ändern Sie die „An-URL“ in die Trunk-URL, z. B. http://server/repository/project1/trunk
  10. Klicken Sie auf „OK“, um zurück zum Trunk zu wechseln

Weitere Einzelheiten und das Befehlszeilenäquivalent des oben Gesagten finden Sie unter diesem Link:
Regale in Subversion

Eine andere Möglichkeit besteht darin, die Funktion „Patch erstellen“ in TortoiseSvn zu verwenden, um eine Patch-Datei zu erstellen und Änderungen rückgängig zu machen.Die Patch-Datei kann später erneut angewendet werden, um wieder dorthin zurückzukehren, wo Sie waren.

Wenn Sie jedoch die Revision der Arbeitskopie aktualisieren müssen, kann es dennoch zu einigen Sticky Merges kommen.

SVN hat die Regale modernisierthttps://subversion.apache.org/docs/release-notes/1.11.html#shelving

Die Art der Veränderung, die Sie können, sind engagierbare Änderungen an Dateien und Eigenschaften, mit Ausnahme der folgenden Arten, die noch nicht unterstützt werden:

  • Kopien und Umzüge
  • Erstellen und Löschen von Verzeichnissen

Sie können ein DVCS verwenden, aber in gewisser Weise ist das eine Flickschusterei.„Shelving“ in einem DVCS speichert Ihre Änderungen nur lokal.Dies ist nur dann nützlich, wenn Sie Ihre Arbeit mit einem Prüfpunkt versehen möchten, um sie zurückzusetzen, wenn Sie sie durch weitere Arbeit unterbrechen. Vorzugsweise möchten Sie Ihre Arbeit jedoch auf dem Server speichern.

Eine Möglichkeit, dies in SVN ohne einen expliziten Shelve-Befehl zu tun, besteht darin, Ihre Arbeitskopie an einen anderen SVN-Speicherort zu verschieben und dort statt in Ihrem Haupt-Repository einen Commit durchzuführen.Dies ist praktisch so, als ob Sie einen temporären Zweig erstellen und diesen für die Dauer Ihrer Arbeit bearbeiten.Ich glaube nicht, dass Sie überhaupt eine Zusammenführung durchführen müssen, da SVN dies für Sie erledigt, wenn Sie wechseln, da Ihre lokalen Änderungen beibehalten werden.

Leider können Sie nicht zu einem nicht vorhandenen Standort wechseln. Wenn Sie dies also zum ersten Mal tun, müssen Sie den „Zweig“ erstellen, an den Sie die Position verschieben möchten.Ich denke, das Ganze könnte automatisiert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top