这是交易: 刚入职,这里的source control基本没什么用。 所有开发人员(大约 10 个人)都在同一个开发站点测试他们的代码,除了将更改提交到 SVN 之外没有其他方法可以测试更改,然后它会自动在开发站点中更新。 (我们甚至不要开始谈论当别人破坏某些东西时的头痛,你必须弄清楚为什么你的东西现在不工作......)
因此,与其像 Ctrl+S 那样刷新浏览器以查看我的更改,不如按 Ctrl+S、svn 提交、刷新页面。 当然,由于每个人每天都必须这样做一百万次,所以从来没有任何提交消息,所以 svn 历史记录是无用的。
无论如何,由于我是新人,为了我自己的理智,我想在本地使用其他一些源代码控制系统,这样我就可以原子地提交项目,并且能够轻松回滚。
是否可以同时使用 mercurial 和 svn? 我基本上会使用 svn 来查看我的更改,并使用 mercurial 来跟踪我的更改。
也欢迎任何替代想法。 谢谢!
更新-
谢谢大家的回答。
不幸的是,在这种情况下,没有一个真正适合我。也许我没有解释正确。
我不想在 repo 协议(protocol)之间同步。我需要的是能够在同一个地方拥有两个不同的存储库 check out 。
因此,如果我执行 svn status
,我将与常规公司 repo 进行比较。但是,如果我执行 hg status
,我会与我自己的个人存储库进行比较,以帮助我保持理智。
谢谢大家
最佳答案
Mercurial Stack Overflow 有一个 guide其中描述了 Subversion interaction choices in detail .目前有3种方法:hg convert
、hgsubversion
、hgsvn
。有关详细信息,请参阅指南。
(我自己的两分钱是 hgsubversion
没有正确处理所有存储库,但是当它处理时,处理起来非常顺利。如果没有,我在 hgsvn
.)
更新:
你说:
"Thanks for all the answers. Unfortunately, none really suit me in this situation. Maybe I didn't explain it right. I don't want sync between repos. What I need is to be able to have like two different repository checkouts living in the same place. So if I do svn status I'm comparing against the regular company repo. But if I do hg status I'm comparing against my own personal repo to help me stay sane."
啊,我明白了。简单来说,是的。但你可能不想。您可以从 Subversion check out ,从 Mercurial 树手动复制 .hg 目录,然后从每个目录运行命令。您几乎肯定想要svn ignore
.hg*
文件并将**.svn
添加到您的.hgignore
.但是你真的不想这样做,除非除了偶尔从原始存储库中 svn update
或 hg pull
之外,你没有编辑结帐。如果您还进行编辑,您将犯错误,并且您将最终将一些您不希望 checkin 到一个或另一个存储库的内容。
如果我对您的理解正确,您仍然会从使用 Mercurial-Subversion 桥之一中获益。例如,您可以很容易地使用 hgsubversion
执行 hg status
与本地 Mercurial 存储库进行比较,并使用 hg svn status
与远程 Subversion 进行比较存储库。即使您不同步,而只是将您的文件与一个存储库和另一个存储库进行比较,拥有一个能够理解两者并且不会将不需要的状态从一个 VCS 泄漏到另一个 VCS 的系统仍然要好得多。
关于svn - Subversion + 同一工作副本中的一些其他 VCS(Git、Hg 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1750466/