2

私は自分の作品の多くを個人のSVNリポジトリからgitリポジトリに移動しているところです。私は、リモートフォルダへのすべてのリポジトリで毎晩svnadminダンプを実行するcronジョブセットアップを持っています。gitに同様の機能はありますか?

また、私はgitを完全に理解していないので、このロジックはおそらく間違っていますが、すべてのsvnリポジトリを単一のディレクトリ(/ home / svn /)に保存しましたが、gitは、コピーできる同様のディレクトリを作成しますか?離れた場所?または、スナップショットのみを.gitディレクトリに保存しますか?

4

3 に答える 3

5

gitcloneを使用できます。すべてのgitの「作業コピー」(SVN用語を使用するため)は完全なリポジトリであるため、gitにはsvnadminに相当するものがないことに注意してください。

于 2010-02-21T08:49:57.160 に答える
2
#!/bin/bash
# tar.bz2 to the stdout the git repo from the current dir.
TMP=`mktemp -d`
trap "rm -rf $TMP" EXIT
git clone --template=. --mirror . "$TMP" && tar -cjC "$TMP" .

ps:すべてのgit「作業コピー」が完全なリポジトリであるとは限りません。それらのほとんどはそうですが、以下の例で作成されたものはそうではありません。

git clone --depth 4 . `mktemp -d`
于 2012-05-14T00:49:07.050 に答える
0

複数のリポジトリをリモートコンピュータにコピー/ミラーリングする方法(gitに組み込まれている)はありません。新しいcronジョブでは、各リポジトリを個別に複製/プッシュする必要があります。別の方法を使用して、すべてのリポジトリを同期することもできます。リポジトリは単なる通常のファイルであるため、それらをすべて同じように保持する場合は、そのディレクトリを別のコンピュータに置く/srv/svnことができます。rsync

rsyncリポジトリの更新と同時に使用すると問題が発生する可能性がありますが、これが個人的な使用である場合は、夜間などにリポジトリが「アイドル状態」であることをほぼ保証できます。

于 2010-02-21T09:37:45.347 に答える