Suchen Sie nur git-svn
? Mit abhängig meinst du, dass die übergeordnete Version in svn ist oder Anbieter hat, die svn-Projekte sind?
Angenommen, hängt davon ab, dass Sie Abhängigkeit meinen:
Sie können jede Art von Repo problemlos in ein Git-Repository stellen. z.B
$ mkdir ~/project
$ cd ~/project
$ git init
$ ...
$ git commit -va
[master (root-commit) xxxxxxx] Did something
...
$ mkdir vendors
$ cd vendors
$ svn checkout svnproject(url)
$ cd svnproject
$ ...
$ svn ci -m "committing to svnproject"
usw.
Und dann schaffen svnproject
Sie es wie gewohnt. Sie können git-svn
stattdessen natürlich stattdessen mit git-Befehlen mit Ihrem svn-Repo interagieren.
Sie können dies dann auch tun:
$ cd ~/projects
$ git add vendors/svnproject
$ git commit -m "adding svnproject source to main repo"
In diesem Fall werden Aktualisierungen, die Sie an Dateien vornehmen, svnproject
sowohl als SVN- als auch als Git-Unterschiede angezeigt. Ein Beispiel, bei dem /tmp/gitproject
es sich um ein .. git-Projekt handelt und /tmp/gitproject/vendor/minify
es sich um eine (zufällige) SVN-Prüfung handelt:
[andy@laptop:/tmp/gitproject/vendor/minify]$ vim README.txt
[andy@laptop:/tmp/gitproject/vendor/minify]$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: README.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
[andy@laptop:/tmp/so/vendor/minify]$ svn status
M README.txt
[andy@laptop:/tmp/so/vendor/minify]$
Wenn Sie git-svn
mit Ihrem svn-abhängigen Repository interagieren, können Sie es mit den Änderungen synchronisieren, die Sie im übergeordneten Git-Projekt vorgenommen haben, git-filter-branch
und müssen daher nicht jedes Repository einzeln festlegen.
Nebenbei bemerkt: Erfahrungsgemäß ist es im Allgemeinen recht problematisch, ein Git- und SVN-Projekt synchron zu halten, es sei denn, das eine oder andere ist schreibgeschützt.