在同一个工作树上独立使用git和svn

时间:2014-07-28 10:30:23

标签: git svn version-control git-svn

我处于一个经典的情况:我的公司系统基于svn,可能它永远不会改变。但我更喜欢git,因为它具有扩展的功能,稳定性,灵活性和速度。

因此,我尝试在我的开发机器上使用git,但我想让它以svn为中心的软件开发(部分人工)基础设施不可见。

是的,我知道有一个gitsvn来弥合git和svn之间的差距。但事实是,我对gitsvn并不满意,而且我学的文档越多,我就越来越不满意。

目前我认为放弃我的git项目并且只使用svn对我来说更好。

我有一个想法,这会让事情变得有点复杂,但至少它会完全符合我的要求。我的想法是单独在同一个工作树上使用svn和git。我在想这个布局:

.git/
    .gitignore (<- of course .svn here)
.svn/
    .svnignore (<- of course .git will be also ignored)
dir1/
dir2/
...

我完全忽略了gitsvn。我只是把它从一切中解脱出来。当然,.git和.svn需要对两个系统都不可见。

我认为,从某种意义上讲,我需要保持VCS-s状态,但我认为,我会使用某种类型的内部标准来做到这一点。例如,我主要使用git,并且仅将svn用于中央存储库的提交/更新。

我知道,eclipse(和大多数IDE)都无法处理这样的结构,但我认为我可以忍受这种结构。

有人也这样做了吗?有什么经历?

1 个答案:

答案 0 :(得分:2)

Git和SVN工作副本在同一棵树上的工作目录糟糕的想法(tm) - 你会得到一个令人头疼的双重问题。 Git-SVN本身是合理的智能,隐藏了很多麻烦(从我的POV)

你可以考虑不仅使用裸git-svn,而是整齐地隐藏在两个世界的客户中:SmartGit是这样的工具之一

Git和SVN之间的替代桥梁是SubGit

  

SubGit是作为Git-Svn的替代品开发的,所以SubGit很自然地解决了许多Git-Svn限制。