5

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

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

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

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

谢谢!

4

3 回答 3

4

如果你想使用 SVN 签出一个存储库,你必须有一个 SVN 存储库,这不足为奇。没有它,就很难跟踪在 SVN 和 git 之间不能很好地转换的东西(例如修订号、分支)。

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

于 2011-01-11T19:25:55.270 回答
4

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

git-svn另一种解决方案是将官方仓库设为 git 仓库,并使用cron 或在提交后挂钩中自动推送到从属 svn 仓库。如果如您所说,这似乎是最好的,svn 用户永远不需要提交。

于 2011-01-11T19:38:01.563 回答
-2

谢谢你的回答,svickDamien!它们都很好,但是由于我不能同时接受它们,因此我将在自己的答案中对整个事情进行一些总结。


所以,基本上,一个人可以拥有一个 git 存储库,它具有只读的svn 访问权限。正如达米安所说,

使官方仓库成为 git 仓库,并使用 git-svn 自动推送到从属 svn 仓库,无论是使用 cron 还是在提交后挂钩中。

获得对任何存储库中代码的只读访问权限的另一种方法是创建一个存档,其中包含存储在服务器上某处的源代码的最新快照并可供下载。


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

于 2011-01-14T08:44:26.233 回答