Mein Repo ist SVN, und ich mache alle Entwicklung mit Git. Wir haben ein Standard-Layout, und ich initialisiert meinen lokalen Repo mit git svn init -s <url to repo>
Woher weiß git-svn, an welchen Zweig es zu senden ist?
Hier ist mein Workflow mit Niederlassungen für die Arbeit:
# creates a new branch remotely
git svn branch new-branch-name
# switches to a branch or trunk locally
git reset --hard name-of-branch
git reset --hard trunk
# merge changes from trunk into a branch
git reset —hard name-of-branch
git merge trunk
git svn dcommit
Der letzte Kommando über die Änderungen an den Zweignamen-of-Zweig begehen. Meine Frage ist, wie weiß Git I das? Wenn ich git reset --hard foo
mache, was genau passiert?
Dies könnte nur auf eine allgemeine Frage über Git kommen. Jedes Mal, wenn ich versuche, eine Antwort zu recherchieren, bin ich verwirrt darüber, ob die svn-Integration ein Sonderfall ist oder nicht.
[1] "git-svn sucht in der Commit-Struktur nach Vorfahr-Commits, die aktiven SVN-Zweigen entsprechen. - Manchmal rät es falsch - gibt es eine Möglichkeit für mich, es explizit zu spezifizieren? [2] "so etwas kann deine SVN-Geschichte fubarieren" - so wird die Geschichte unheilig sein, aber die Verschmelzung der Code-Dateien sollte in Ordnung sein, ja? –
hmm, die man-Seite sagt, dass '--commit-url' nur zum Wechseln des Transports verwendet werden sollte, und" Es wird dringend davon abgeraten, diese Option für andere Zwecke zu verwenden (nicht zu fragen). " –
Wenn Sie einen bestimmten Zweig angeben möchten, den Sie übernehmen möchten, bringen Sie den Zweig des Features einfach über den entsprechenden Remote-Zweig in Ihrem Git Repo. – cdhowie