14

サーバーに空のsvnをセットアップし、途中でローカルでコミットを行う作業を行ってきました。今、リポジトリを svn サーバーにコミットしたいと考えています。このために私は試しました:

git-svn checkout http://remote.svn.server.com
git-svn dcommit

Git は次のように不満を述べています。

Use of uninitialized value in concatenation (.) or string at /usr/bin/git-svn line 411.
Committing to  ...
Unable to determine upstream SVN information from HEAD history

最初にローカル コンピューターで開始し、オンラインのリポジトリが空であるため、これを機能させる方法に関する情報が見つかりません。

4

2 に答える 2

29

最近、このようなものが必要でしたが、プロセスは比較的簡単です。

Brandon Dimcheff による優れたチュートリアル「Commit a linear git history to subversion」 (古い壊れたリンクを置き換えます) があり、これらの手順はこれに基づいています。

Git バージョン 1.6.3 以降の手順は次のとおりです。

$ svnadmin create svn_repository
$ svn mkdir -m "Initial setup" file:///full/path/to/svn_repository/trunk

$ mkdir gitrepo && cd gitrepo
$ git init
$ echo 'Hello from Git' > file.txt
$ git add file.txt
$ git commit -m "Hello from Git"

$ git svn init --trunk=trunk file:///full/path/to/svn_repository/
$ git svn fetch

$ git branch -a # Lists remotes/trunk

$ git rebase --onto remotes/trunk --root master
# => Applying: Hello from Git etc.

$ git svn dcommit
# => Committing to ... Committed r2 ... etc

svn checkout今すぐ svn_repositoryを実行して、Git リポジトリを確認できます。

于 2009-06-11T15:18:51.843 に答える
6

これが私がすることです:

git-svn clone http://remote.svn.server.com otherdir

次に、他のディレクトリで、以前のディレクトリから変更をローカルにプルします。次に、git-svn を介して「接続」された git リポジトリが必要であり、dcommit を使用できるはずです。

これも参考になるかもしれません。

于 2009-01-20T00:21:28.030 に答える