关注Subversion存储库Trunk的最佳实践:Git(镜像),Git-Svn,Subversion?

时间:2008-10-29 21:10:04

标签: django svn git git-svn

我想结帐,然后根据需要更新Mac OS X Leopard 10.5.5计算机上的Django Subversion trunk

我只对在Mac上更新Django代码感兴趣。我对为Django项目提供补丁不感兴趣。我不需要Django主干的Subversion历史记录。

我计划将Git用作我所有个人项目的DVCS / SCM。


使用最新的Django主干保持我的Mac更新的最佳做法是什么?

我是Git的新手,所以理解为什么选择你的选项会非常有帮助。

  1. 使用我的Mac上安装的Subversion 1.4.4:svn co http://code.djangoproject.com/svn/django/trunk/。基本上使用Subversion为我的个人项目获取Subversion repos和Git。

  2. 使用Git SVN获取Django Subversion repo。关于如何为Git新手做这个的说明?

  3. 使用Git获取Git mirror of the Django repo。我有点担心镜子可能会在将来消失,但如果它是最好的选择,我愿意使用它。

4 个答案:

答案 0 :(得分:11)

如果您不打算对Django代码进行更改,那么没有理由将其导入Git。只需使用选项1。

使用git-svn(通过自己运行或通过克隆别人的存储库)非常有用,如果您想对使用Subversion的项目进行本地修改(无论您是否将任何修改发送回项目)。但如果你没有进行任何局部修改,那么它就是不必要的复杂性。

答案 1 :(得分:2)

好吧,如果你正在为你的所有项目使用git并且你对它很熟悉,我建议使用git镜像,因为它接缝是合理的最新版本。 Git也应该比使用Subversion更快。如果镜子消失/过时,您可以随时 svn co / svn up 来获取当前来源。

但是,由于你也安装了Subversion,你也可以使用它而不是...它没有太大的区别,更多的是个人偏好的问题。

Git-svn设置和保持同步更加乏味 - 您必须首先使用 git svn fetch 获取subversion更新,然后执行 git svn rebase 将更改应用于git存储库。它还会占用更多的磁盘空间。这有点更容易出错,如果你真的想在源代码树上进行开发,我只建议使用git-svn。如果你觉得有冒险精神,想试试看this Tutorial - 我发现使用git-svn非常有用。

答案 2 :(得分:1)

迟到总比没有..也许..我不同意目前的获胜答案。我会选择

  
      
  1. 使用Git获取Django repo的Git镜像
  2.   

关于反对的论点:对Git感到满意(或想要)的人不应该发现它“只是不必要的复杂性”。注意:对于某些人(不适合我),该参数可能对git-svn案例有效。

for 的一些原因:

  • 速度

  • 强大的查询(日志)和可视化(gitk&甚至发烧友 表亲)

  • 在大多数情况下减少磁盘空间

  • 二等分 - 例如。试图孤立回归,帮助更好的错误报告

  • 一致性 - 如果所有其他项目都在git中

  • 即使您不打算捐款,也可以更轻松地尝试本地更改

  • 如果你确实改变主意 - 你仍然可以向贡献更进一步

即使镜像消失,您仍然可以切换到另一个镜像,无需再次克隆。

顺便说一句,目前的镜子是https://github.com/django/django,据说是正式的。

答案 3 :(得分:0)

我同意@cjm。如果您只想要Django源的副本,请使用普通的Subversion。

我对git-svn的经验是,对于那些喜欢并且更熟悉Git的人来说,这对于必须跟踪Subversion-repository的人来说最有用,而对那些了解Subversion而又是git-newbies想要的人来说并不那么有用比Subversion更好的东西。由于Subversion具有较差的合并跟踪,因此git-svn存在一些限制,除非你有一些实质性的git经验,否则这些限制会有时会跳起来并咬你。