在工作中我拥有一个相对较小的软件工具(大约25k行java),我一直在使用Git repo来修改它。现在,该工具将成为更大的软件包的一部分,该软件包由使用SVN的其他人在完全不同的环境中维护。但是我仍然希望保持我的Git仓库的灵活性,这样我就不会严格依赖更大的软件包的发布时间表。
有没有办法让我的本地区域与两个版本控制系统同步,避免将.svn
文件上传到git,将.git
文件上传到SVN?理想情况下,我想继续将次要编辑提交给Git,然后在请求时定期推送到SVN,所有这些都来自同一目录。或者我注定要继续在我的系统上的两个目录之间复制文件?
答案 0 :(得分:1)
您最好的选择可能是使用git-svn
。这允许您使用git
作为Subversion存储库的前端。
最简单的方法是:
svn commit
)git svn clone
将软件作为git存储库获取缺点是您丢失了迄今为止创建的git历史记录。
如果你想保留git历史,事情会变得复杂一些(因为SVN不能代表git历史的某些方面,特别是分支)。基本上你是:
git svn clone
git svn dcommit
)“导入你现有的git提交”会让事情变得棘手(例如,你必须在git svn
repo的初始提交之上进行rebase,然后git svn dcommit
将再次进行rebase这会对合并提交造成严重破坏。但是,如果你可以和没有完全忠实代表的分支一起生活,你应该没事。