我们目前正在使用SVN作为php开发的版本控制系统,但我们正在考虑更改为git。 SVN似乎经常中断,因此在尝试提交时会出现类似错误:
svn: Item 'xyz' is out of date
svn: Working copy 'xyz' locked (svn cleanup doesn't solve this)
svn: Working copy missing
因此,我们缺少的功能是告诉版本控制系统本地版本现在正常,只需将其推送到存储库(没有无休止的错误)。
git有这种功能吗?它更容易使用吗?
答案 0 :(得分:2)
FWIW我已经使用和管理我们的办公室SVN多年了,我看到很少这样的错误。 (我打算写一个快速评论,但它太长了。)
过时
这不是错误 - 这只是意味着您需要在提交之前更新并将远程更改合并到本地更改中。在git中你总是可以提交到一个本地分支,但是有人必须在某个时候进行合并 - 这不是免费的。 Git的拥护者会告诉你它有更好的自动合并,但它也不是完全通灵的。
当然在subversion中你总是可以创建并切换到你自己的分支来承诺。
锁定工作副本
我已经看到其中的一两个不能通过清理解决,但它们非常罕见 - 没有个人,一两个办公室。您只需要对已损坏的目录进行新的检查,将更改复制到它,将其交换到树中然后提交。
我不知道是什么造成了这个或如何重现它 - 这只是一个错误。我怀疑git或其他任何东西完全没有错误。 (并且svn比git更成熟多年。)
缺少工作副本
同样这个 - 我从来没有见过这个。谷歌表示,它可能与更改文件名在不区分大小写的文件系统上的情况有关 - 我不知道git是否支持干净,但这是一种罕见的操作,除非您在区分大小写的系统上签出,然后你就可以了在没有任何问题的情况下进行此更改。
git更容易使用吗?这是相当主观的 - 它是不同的。如果有什么我会说SVN在概念上更容易,因为它更简单,但git也不难。