同时使用svn和git进行代码版本管理

项目环境说明

项目使用svn进行代码版本管理。

 

使用场景

1, 修改了某些文件后,在修改成另外的实现方法前先备份当前已经实现的方案(git commit临时文件)

2, 在不能连接svn服务器的机器上修改svn版本管理的代码,且需要进行版本管理


前期准备

安装git(MSsyGit,TortoiseGit)

安装svn(TortoiseSVN)


测试步骤

1, 安装svn TortoiseSVN-1.6.3.16613-win32-svn-1.6.3.msi

2,汉化svn(可选) LanguagePack_1.6.3.16613-win32-zh_CN.msi

3,安装git TortoiseGit-1.2.1.0-32bit.msi;Git-1.6.5.1-preview20100112-with-cheetah.exe

4,创建svn服务器代码库

4.1 在D:\svn_git新建目录svnRepository

4.2 进入D:\svn_git\svnRepository目录,右键选择TortoiseSVN->Create repository here,完成后可看到会生成几个文件夹和文件

5, 创建git服务器代码库

5.1 在D:\svn_git新建目录gitRepository

5.2 进入D:\svn_git\gitRepository目录,右键选择Git Create repository here,完成后可看到生成.git文件夹

6, 将svn服务器代码库checkout到本地,并做一些修改后提交到svn代码库

6.1 在D:\svn_git新建目录svn.local1

6.2 进入D:\svn_git\svn.local1目录,右键选择SVN Checkout,在弹出窗口的”URL of repository"填写"file:///D:/svn_git/svnRepository","Checkout directory"保留默认值"D:\svn_git\svn.local1",完成后可看到生成.svn文件夹

6.3 进入D:\svn_git\svn.local1目录,新建trunk,branches,tags文件夹,并svn commit到svn服务器代码库

6.4 进入D:\svn_git\svn.local1\trunk目录,新建文件test1.cpp写个Hello World程序,并svn commit到svn服务器代码库

7, 将svn服务器trunk代码库的代码checkout到另外一个目录

7.1 在D:\svn_git新建目录svn.local2

7.2 进入D:\svn_git\svn.local2,右键选择SVN Checkout,在弹出窗口的”URL of repository"填写"file:///D:/svn_git/svnRepository/trunk","Checkout directory"保留默认值"D:\svn_git\svn.local2",完成后可看到生成.svn文件夹和test1.cpp文件

到此,D:\svn_git\svn.local1\trunk和D:\svn_git\svn.local2使用相同的svn服务器代码库,在任意一个地方修改,svn commit后,在另外一个地方都可通过svn update来同步

8, 将git服务器代码库checkout到本地,并作一些修改后提交到git代码库

8.1 在D:\svn_git新建目录git.local1

8.2 进入D:\svn_git\git.local1目录,右键选择"Git Clone",在弹出窗口的"URL"填写"file:///D:/svn_git/gitRepository","Directory"保留默认值"D:\svn_git\git.local1",完成后可看到生成.git文件夹

8.3 进入D:\svn_git\git.local1目录,新建trunk,branches,tags文件夹,并git commit到git服务器代码库

9,在本地随便修改几个文件,但由于还不能确定是最后的代码,所以不能提交到svn,采取临时提交到git的办法来管理。先提交到git,等确定是最后代码后再提交到svn,这是svn和git的代码相同。一段时间后,如果发现之前提交到git的某个版本的代码更合适,可以使用git revert到相应的版本,再提交到svn和git。

可以看出,同时使用svn和git管理代码非常方便回滚,并且保证svn的代码总是认为是稳定的

猜你喜欢

转载自cloudmail.iteye.com/blog/1125191