Git : Git-SVN を利用する2024/07/24 |
サーバー側が Subversion リポジトリを使用している場合に、クライアント側で Git-SVN をインストールすると、Subversion リポジトリに対して Git のワーキングリポジトリを作成して利用することができます。 |
|
[1] | クライアント側で Git-SVN をインストールしておきます。 |
root@node01:~# apt -y install git-svn
|
[2] | 当例では Subversion サーバー側で [svnserve] が稼働中であることを前提に進めます。(必須ではない) また Subversion サーバー [dlp.srv.world] 上の [/var/svn/repos/project] リポジトリに対して操作します。 |
# [git svn ***] で SVN リポジトリからクローン noble@node01:~/work$ git svn clone --username ubuntu svn://dlp.srv.world/repos/project hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: hint: hint: git config --global init.defaultBranch <name> hint: hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m <name> Initialized empty Git repository in /home/noble/work/project/.git/ Authentication realm: <svn://dlp.srv.world:3690> 84792bc8-15d0-4409-8573-be73eacd8478 Password for 'ubuntu': W: +empty_dir: trunk r1 = d8797dc84cafb54d37e6d80ceffb2916d0e19291 (refs/remotes/git-svn) W: +empty_dir: branches r2 = c44caa26838323b5d3e8a271a1661bfdc8ed8d35 (refs/remotes/git-svn) W: +empty_dir: tags r3 = 9b7f6c15993a17b19782fcc331f7e134e192bd6a (refs/remotes/git-svn) A trunk/index.html r4 = e6afeff3c0f0d20140a234fe6794aeb47a70a36a (refs/remotes/git-svn) M trunk/index.html r5 = 39d1b89614de6265dbe6321adbfcf52e01d136f3 (refs/remotes/git-svn) M trunk/index.html r6 = 3145148cd539f4138d04dbce7095079dbc163334 (refs/remotes/git-svn) Checked out HEAD: svn://dlp.srv.world/repos/project r6 creating empty directory: branches creating empty directory: tagsnoble@node01:~/work$ total 12 drwxrwxr-x 3 noble noble 4096 Jul 24 04:28 ./ drwxr-x--- 5 noble noble 4096 Jul 24 04:00 ../ drwxrwxr-x 6 noble noble 4096 Jul 24 04:28 project/noble@node01:~/work$ cd project/trunk noble@node01:~/work/project/trunk$ total 12 drwxrwxr-x 2 noble noble 4096 Jul 24 04:28 ./ drwxrwxr-x 6 noble noble 4096 Jul 24 04:28 ../ -rw-rw-r-- 1 noble noble 37 Jul 24 04:28 index.html # 適当にファイルを更新して 更新したファイルを [commit] noble@node01:~/work/project/trunk$ echo "test file" >> index.html noble@node01:~/work/project/trunk$ git commit index.html -m "update" [master 1a482e3] update 1 file changed, 1 insertion(+) # 更新を [push] する場合は [dcommit] noble@node01:~/work/project/trunk$ git svn dcommit Committing to svn://dlp.srv.world/repos/project ... Authentication realm: <svn://dlp.srv.world:3690> 84792bc8-15d0-4409-8573-be73eacd8478 Password for 'ubuntu': M trunk/index.html Committed r7 M trunk/index.html r7 = 1e18f82772e3540c0828c24f933765dbdc15ab56 (refs/remotes/git-svn) No changes between 1a482e305e2f1d99d555ec351cd3b1a8295841cd and refs/remotes/git-svn Resetting to the latest refs/remotes/git-svn # 他人が更新したファイルを自身のローカルディレクトリにマージする場合は [rebase] noble@node01:~/work/project/trunk$ git svn rebase Authentication realm: <svn://dlp.srv.world:3690> 84792bc8-15d0-4409-8573-be73eacd8478 Password for 'ubuntu': M trunk/index.html r8 = a6a06c30b42bc3b3543cc0206196297644fcf2b0 (refs/remotes/git-svn) Successfully rebased and updated refs/heads/master. |
Sponsored Link |