出于代码审查的目的,我非常习惯使用该bzr qlog命令直观地查看两次提交之间的更改.我现在开始使用git,我正在寻找相应的东西.我想要的三个主要功能是:
到目前为止我发现的最接近的git组合是注册meld为git diff工具,然后git cola用来比较修订版.不幸的是,这里的修订查看器是有限的,我一次只能比较一个文件.
我的后备解决方案当然是使用bzr-git然后简单地运行bzr qlog.我已经尝试了这个并且似乎工作正常,我只是担心当我开始在存储库中使用git特定功能时它会开始让我失望.
那么,是否有一个git工具或一系列工具,我可以毫不费力地获得相同的基本结果?
注意:我对SmartGit等商业解决方案不感兴趣
Mercuril,Git和Bazaar有办法获得路径根:
git rev-parse --show-toplevel
hg root
bzr root
Run Code Online (Sandbox Code Playgroud)
如何在subversion中打印本地根路径?
更新
例:
> svn checkout https://example.com/svn/foo ~/foo --username fabiocerqueira
> cd ~/foo
> svn root (don't works)
/home/user/project/foo/
Run Code Online (Sandbox Code Playgroud) 有人把所有二进制文件都交给我们的集市主干,我想摆脱它.`bzr del file'只删除当前版本的文件,但不删除文件的历史记录.
有没有办法可以删除文件历史记录,以便我们不必全部下载数百MB的数据?
我有一个小项目,我从集市开始,作为学习bzr的练习.我已经决定我更喜欢Mercurial.我该如何将这个项目迁移到Hg?
使用Mercurial我做:
$ hg in
Run Code Online (Sandbox Code Playgroud)
使用SVN我做:
$ svn log -r BASE:HEAD
Run Code Online (Sandbox Code Playgroud)
这与Bazaar有什么关系?
由于它的新手友好性,我开始学习带有集市的DVCS,并且由于其速度,最近由于我的日常工作而转向git.我从集市上错过的一件事是bzr qlog对话框,它允许您通过单击加号来隐藏或显示开发线,如此处所示.

我想为git找到类似的东西.我已经检查了这里和这里列出的GUI ,我想我已经设法从这里获得所有相关的.有人知道可隐藏分支的实现吗?注意,我并不是说能够指定所有分支而不是单个分支,几乎所有的GUI都可以这样做.我的意思是能够在单个分支中隐藏或显示任何合并提交的^ 2侧.
我更喜欢开源和跨平台,但只接受商业和/或Windows的东西.我想我可以bzr-git继续使用集市只是为了查看历史记录,但这可能会产生比它解决的更多可用性问题,更不用说首先引起切换的速度问题了.
话虽这么说,如果没有这个功能的可用实现,那是因为git和bazaar之间的某些技术差异导致它不可行吗?或者由于典型的工作流程或其他非功能性原因,还没有发生任何从事git GUI工作的人?如果没有不可逾越的技术原因,我可能会花时间自己做出这样的贡献.
我是DVCS的新手,所以我可能误解了一些概念和术语,但这是我想要实现的想法,我试图找出Bazaar或Mercurial是否以直截了当的方式支持这一点:
主存储库中有经过良好测试的代码.假设我克隆(或拉或分支或其他任何术语)从那里克隆到本地存储库,然后每天当我处理我提交的代码本地更改时,有时一天多次.
在完成所有更改和测试之后,我想只获得放入主存储库的每个文件的最新(本地)提交版本,而不是我在调试和单元测试期间本地提交的几十个中间版本.
根据我一直在阅读的内容,显然这些半生不熟的版本的整个历史将反映在主存储库中,如果我推动它.一些互联网文章似乎暗示如果处理得当,rebase可以解决这个问题,但是不清楚是否/如何做到这一点,因为看起来rebase更多的是避免分叉的分支/合并历史而不是避免提交大量中间版本.
我使用Mercurial来控制我的源代码.但有些人更喜欢其他版本控制系统(如git,Bazaar,SVN,CVS).
我想知道,是否可以同时在多个系统下存储存储库,以便人们可以使用他们想要的任何存储库?
简要:
我希望有两个(或更多)"开发流"/环境相互跟踪,在两个方向之间相互发送变化,而不会完全收敛 - 同时保留某些关键,必要的差异?
详细信息,一个特定示例:
这是一个特例:
我一直是控制我的主目录的版本,glew-home,因为,哦,28年.RCS,SCCS,许多RCS包装器,CVS,SVN,早期DVCS的短暂实验,如Monotone和Darcs,bzr,git和现在的Mercurial.目前我主要使用Mercurial,尽管我会根据需要跳回git或bzr.
现在,我的主目录在许多系统上都类似,但不完全相同.最大的区别在于Cygwin与工作中的各种Linux.我试图让它们尽可能地微笑,但是出现差异,并且经常需要坚持下去.
以下是差异的一个小例子:在Cygwin上,在我个人拥有的笔记本电脑上,〜/ LOG是〜/ LOG.dir/LOG.cygwin.glew-home的符号链接,而在工作中〜/ LOG是一个符号链接到某个东西喜欢〜/ work/LOG.dir/LOG.work.
原因:任何专有需要留在工作中.〜/ work是一个单独的存储库,〜/ work/.hg,不会被推/拉或以其他方式与我的个人计算机同步.
问题:我想保持这些符号链接(和其他几个文件)不同.但我想同步所有其他文件.我在两个地方都改变了我的环境.如果我在工作中改变我的〜/ .emacs,我想把它发回家,反之亦然.
问:我怎样才能最方便地做到这一点?
在过去的糟糕时期,我会使用一个共同的存储库,比如一个常见的CVS回购.CVS不处理符号链接,但是说我有一个脚本从存储在CVS中的模板生成符号链接.我会安排〜/ LOG的符号链接模板为我的cygwin-laptop和工作提供不同的分支.我会创建工作区,大多数文件指向相应的RCS/CVS repos的同一分支,而cygwin-linux和work之间不同的文件会将相应的分支签出到相应的工作区.
这很有效,虽然维持起来有点痛苦.
我还没有想出一个使用现代DVCS的好方法,比如Mercurial(或Got或Bzr).
这些现代DVCS工具执行整个repo分支,而不是按文件分支.他们不理解两个分支的概念,这两个分支对于大多数文件是相同的,但仅在某些文件中有所不同.
当我试图跟踪两个分支时,我总是最终传播出必要的差异.
有些人建议Makefiles.不吸引人.
我已经考虑过必要的改变基础转换,并不断变基础.但我不喜欢那么反驳.
更好的想法赞赏.
被子?
我在文件夹中,我有rwx权利,我试过这个
bzr branch bzr+ssh://bazaar.launchpad.net/%2Bbranch/openobject-addons/7.0/
当他们要求存储公钥时我给了'是'
但是出现以下错误消息
'权限被拒绝(publickey).ConnectionReset读取'BzrDir.open_2.1'的响应,重试Permission denied(publickey).bzr:错误:连接已关闭:消息意外结束.请检查连接和权限,并在问题仍然存在时报告错误.
它是一个公共回购,所以不应该有任何访问权限的问题.链接有问题吗?我该如何验证?`