来自GIT存储库的svn-checkout

时间:2011-01-11 19:14:44

标签: svn git svn-repository

有没有办法从git存储库进行svn-checkout?

问题是我想在服务器上存储一个git存储库,我可以正常使用git,推送和拉动更改。

但是,有些开发人员不需要对代码进行更改,但他们需要能够获取源代码的最新快照并在其计算机上构建它。那些所谓的“开发人员”真的很想使用SVN作为他们已经熟悉的SCM。

那么,有没有办法设置这样的场景?或者这是唯一可行的方法 - 使用SVN存储库并使用git-svn使用它,如果我想为自己使用git而为其他同事使用SVN?

谢谢!

3 个答案:

答案 0 :(得分:5)

如果您想使用SVN签出存储库,您必须拥有一个SVN存储库,不出所料。如果没有这个,就很难跟踪SVN和git之间没有很好转换的东西(例如版本号,分支)。

但是你要求的并不像是一个存储库,你只需要同步一个文件夹。为此,除了SVN之外的其他工具可能更适合,例如rsync。另一种可能性是拥有一个包含源代码的总是最新的存档(例如Github提供此代码)。

答案 1 :(得分:4)

通过git-svn使用SVN repo可以工作,但是如果有其他人喜欢git,你将失去与git协作的好处。这就是我在SVN是事实标准的工作中所使用的,我只是更喜欢git的命令和更好的日志显示。无论如何,我们大多使用SVN作为归档工具:没有分支,我们在现实生活中同步以协作处理单个文档。

另一个解决方案是将官方repo变为git one,然后使用git-svn自动推送到svn repo,使用cron或后提交挂钩。这似乎是最好的,如果你说,svn用户将永远不需要提交。

答案 2 :(得分:-2)

感谢您的回答,svickDamien!他们都很好,但由于我不能接受他们两个,我会在我自己的答案中做一些事情。


因此,基本上,可以有一个git存储库,其中包含只读 svn访问权限。达米恩说,

  

使官方repo成为一个git,然后使用git-svn自动推送到svn repo,使用cron或者在post-commit钩子中。

获取只读访问任何存储库中代码的另一种方法是将源代码的最新快照存档在服务器上并可供下载。


如果某些用户需要对代码进行更改,那么保存它们的唯一合适方法是将它们提交回repo,无论使用什么SCM。在这种情况下,如果进行更改的用户不知道如何提交,则应该有一位程序员(负责源代码),他们将很乐意审核更改并将其提交回repo。