在Git和Svn版本控制下设置工作副本

时间:2013-10-24 07:46:00

标签: git svn version-control

由于原因我不会去解释(除非要求)我有两个repos,一个subversion和一个git one,我的项目(它的相同副本)位于其中。如果可能的话,我需要保持这种方式。

因此,为了保持两者之间的一致性,我想要完成的是在我的机器上设置一个目录,我可以svn checkout项目,处理它,然后将更改推送到两者 svn和git repos。

我已经阅读了有关git svn命令的内容,但从我收集的内容来看,它只是一种在本地使用git 的方式,然后推送(而不是dcommit)你的工作到svn回购。 尽管如此,我天真地尝试发出:git svn init <url to svn repo> -s --username <uid> test(没有提示输入pwd,没有检查工作副本,只在文件夹测试中创建了文件夹.git),然后是:git svn clone <url to git repo> test并返回:

svn-remote.svn.url already set: <url to svn repo>
wanted to set to: <url to git repo>

但是,由于这篇文章在SO How to deal with Git-svn when have to use both Git and Subversion上,我的希望很高,看来OP的工作流程包含git svn dcommitgit push命令。 如果有办法实现我的愿望,有人可以一步一步地指导我如何做到这一点吗?

提前致谢。

P.S。作为这种特殊配置的额外奖励,我希望能够svn:忽略我的项目的某个文件夹但是将它推到git repo上(即img / local文件夹不能提交给svn,因为有一个规则说它应该被忽略,但.gitignore文件中没有这样的条目,所以我假设添加到它的文件将被推送到git repo,但不会被推送到svn,对吗?)

1 个答案:

答案 0 :(得分:1)

post you reference需要简单的引导程序:

  • 移动svn本地工作区根目录中的.git文件夹
  • 检查git status的输出,看看是否需要向.gitignore添加任何内容。

另一种选择是使用专用工具,专门用于svn-git repos的往返同步,例如 SubGit (在GitMinutes episode 22上显示)。
但是,工作空间(一个用于git,一个用于svn)仍然是分开的。