如果我在Subversion中删除文件,我该如何查看它的历史和内容?如果我尝试执行svn cat
或svn log
在不存在的文件上,它会抱怨该文件不存在.
另外,如果我想恢复文件,我应该svn add
回来吗?
(我特意询问了Subversion,但我也想听听Bazaar,Mercurial和Git如何处理这个案例.)
人们在这里看到Git,Mercurial和Bazaar的相对优势和劣势?
在考虑彼此之间以及针对SVN和Perforce等版本控制系统时,应该考虑哪些问题?
在规划从SVN迁移到这些分布式版本控制系统之一时,您会考虑哪些因素?
我熟悉的所有版本控制系统的工作方式是每个提交都归功于一个开发人员.敏捷工程的兴起,特别是结对编程,导致了两个开发人员对同一任务做出了重大贡献的情况,例如错误修复.
归因问题在工作环境中不会有太大的影响,因为项目经理会知道这对工作正在做的工作,但是如果两个开源贡献者决定配对并推出一些代码呢?对于一个不知道他们在一起工作的特定项目.有没有办法像Git这样的版本控制系统将特定补丁归因于多个开发人员?
我想回到我的集市历史(更改工作树)来查找引入某个bug的提交.
我不想删除任何提交,只是更改我的工作树,直到我找到错误,然后我想回到最新版本继续工作.
这两个命令是什么(回到之前的提交,然后再次检查最新版本)?
提前致谢.
我想在git存储库的根目录中列出版本化文件.要在集市上做同样的事情,你运行:
bzr ls --versioned --non-recursive
Run Code Online (Sandbox Code Playgroud)
我怎么用git做这个?
在过去的一年里,我已经沉迷于颠覆.我是唯一的开发人员,我也参与了一些自己的项目.使用SVN,它可以很容易地管理所有内容 - 并且因为它通过HTTPS托管在在线服务器上,所以我可以从任何地方访问我的代码.它也非常适合将代码部署到我们的生产/开发服务器.
我的观点是它完成了我需要它做的所有事情并且从未让我失望过.
有更好的吗?我是否错过了其他可以用来让我的生活更轻松的产品的功能?我一直都在使用最好的软件,并且没有问题迁移到新技术.
我听说过GIT并做过一些研究.我打算尝试一下,但是当我搞砸了它时,还有另外一个被认为是"行业标准"的其他源控制系统,他们做的事情比SVN更好吗?
版本控制的两种用途似乎决定了不同的签到样式.
以分布为中心:变更集通常会反映完整的功能.一般来说,这些签到会更大.这种风格更加友好用户/维护者.
rollback centric:changesets将是单独的小步骤,因此历史记录可以像一个非常强大的撤销功能.通常,这些签到会更小.这种风格更适合开发人员.
我喜欢使用我的版本控制作为非常强大的撤销功能,同时我会抨击一些顽固的代码/错误.通过这种方式,我不会为了尝试可能的解决方案而做出重大改变.然而,这似乎给了我一个碎片化的文件历史记录,其中包含许多"井下不起作用"的签名.
如果我尝试让我的变更集反映完整的功能,我会放弃使用我的版本控制软件进行实验.但是,用户/维护者更容易弄清楚代码是如何发展的.这对于代码审查,管理多个分支等具有很大的优势.
那么开发人员应该做些什么呢?检查小步骤或完整功能?
我有兴趣尝试分布式版本控制系统.git听起来很有希望,但我在git的Windows端口看到了一条说"不要使用非ASCII文件名"的注释.我现在找不到,但有这个链接.它现在让我脱离git,但我不知道其他选项是否更好.
支持非ASCII文件名对我的日本公司至关重要.我正在寻找一个内部存储文件名为Unicode的文件,而不是依赖于平台的编码,这会导致无休止的悲伤.所以:
我想积极参与Launchpad上托管的项目.我对GitHub感觉更舒服,并希望尽可能继续使用它.我能在github上镜像bzr存储库吗?
如果有可能,我该如何设置?
可能重复:
为什么git比Subversion更好?
关于版本控制系统,我已经阅读了很多(虽然不足以得到完美的图片),显而易见的结论是GIT是最好的.或者是Bazaar.或Mercurial.但如果是这样,那么没有人会使用SVN,但他们仍然这样做.为什么?由于缺乏经验,我自己对vcs通常是最好的没有自己的看法.你能分享一下你的想法吗?