SVN zu Git: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Alex (Diskussion | Beiträge) (Leere Seite erstellt) |
Alex (Diskussion | Beiträge) |
||
Zeile 1: | Zeile 1: | ||
+ | = Migration von SVN-Repos zu Git = | ||
+ | Im Folgenden muß der Text <code><repo></code> durch den Namen des Repos ersetzt werden. | ||
+ | |||
+ | ==== 1. Checkout des SVN-Repositorys ==== | ||
+ | |||
+ | $ svn co svn://svn.arteco.de/<repo> | ||
+ | |||
+ | ==== 2. Sammeln der Commit-Autoren ==== | ||
+ | |||
+ | $ cd <repo> | ||
+ | $ svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > users.txt | ||
+ | |||
+ | Anschließend die Datei <code>users.txt</code> editieren und den SVN-Nutzern ihren Namen und die E-Mail-Adresse (so wie sie im Git-Repo heißen sollen) zuordnen: | ||
+ | |||
+ | $ cat users.txt | ||
+ | dideldum = Didel Dum <dideldum@arteco.gmbh> | ||
+ | dideldei = Didel Dei <dideldei@arteco.gmbh> | ||
+ | |||
+ | ==== 3. Erzeugen eines Git-Repos aus dem SVN-Repo ==== | ||
+ | |||
+ | $ cd .. | ||
+ | $ git svn clone --trunk trunk --no-follow-parent -A <repo>/users.txt --ignore-paths='^(?:branches|tags)' --ignore-refs='^refs/remotes/origin/(?!trunk).*$' svn://svn.arteco.de/<repo> <repo>.git | ||
+ | |||
+ | ''Hinweis:'' Mit den <code>--ignore-paths</code>- und <code>--ignore-refs</code>-Parametern werden alle Branches und Tags ignoriert. Wenn diese in das neue Git-Repo übernommen werden sollen, dann können diese Parameter weggelassen werden. | ||
+ | |||
+ | Mit einem <code>git log</code> im <repo>.git-Verzeichnis sollten nun schon die Commits zu sehen sein. |
Version vom 5. September 2022, 15:42 Uhr
Inhaltsverzeichnis
Migration von SVN-Repos zu Git
Im Folgenden muß der Text <repo>
durch den Namen des Repos ersetzt werden.
1. Checkout des SVN-Repositorys
$ svn co svn://svn.arteco.de/<repo>
2. Sammeln der Commit-Autoren
$ cd <repo> $ svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > users.txt
Anschließend die Datei users.txt
editieren und den SVN-Nutzern ihren Namen und die E-Mail-Adresse (so wie sie im Git-Repo heißen sollen) zuordnen:
$ cat users.txt dideldum = Didel Dum <dideldum@arteco.gmbh> dideldei = Didel Dei <dideldei@arteco.gmbh>
3. Erzeugen eines Git-Repos aus dem SVN-Repo
$ cd .. $ git svn clone --trunk trunk --no-follow-parent -A <repo>/users.txt --ignore-paths='^(?:branches|tags)' --ignore-refs='^refs/remotes/origin/(?!trunk).*$' svn://svn.arteco.de/<repo> <repo>.git
Hinweis: Mit den --ignore-paths
- und --ignore-refs
-Parametern werden alle Branches und Tags ignoriert. Wenn diese in das neue Git-Repo übernommen werden sollen, dann können diese Parameter weggelassen werden.
Mit einem git log
im <repo>.git-Verzeichnis sollten nun schon die Commits zu sehen sein.