`
steeven
  • 浏览: 313096 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Mercurial的几个疑惑

阅读更多
最近在想dvcs应用的问题,同时也用mercurial作为版本管理工具,给"Mercurial Eclipse"完善了import/export功能。在应用中有几个疑问:
1. 怎样把几次临时提交合并起来?因为要在不同的电脑上工作,有时候把临时工作结果提交进去,可是merge到trunk的时候,这些临时版本和那些临时性的说明也跟着进去了 怎样把这些连续的临时提交合并呢?
2. SVN用户来说,可以把某个子目录或者子项目提交出来。mercurial似乎就没有了,从wiki看,似乎要用到的其convert工具,有点小题大做。一些大项目你要改进或者研究其中一部分,把它们全clone出来太恐怖了。
3. 刚开始不大会用,提交的用户名居然是administrator, windows的缺省用户名。最终也能merge到主干里面。的确够分布和随意的。对于这些不小心或者恶意的用户提交,主干单纯的pull似乎费力不讨好。
4. 权限,目前主要方案似乎是pull为主。

5. 在企业,相对于svn, why mercurial? 出差?在家工作?
分享到:
评论
3 楼 steeven 2008-11-23  
提交的备注是否可以修改?N
因为备注等信息被hash成changeset的key.

这似乎有些过于严格,备注需要修改的情况很多。有个变通的做法是strip掉changeset,重新提交。但是要及早。

更多办法参见:http://www.selenic.com/mercurial/wiki/index.cgi/EditingHistory
2 楼 steeven 2008-11-22  
qinit -> (qnew -> qrefresh*n)*n -> qpop|qpush|qdelete| -> qcommit
       
1 楼 steeven 2008-11-22  
mercurial内置的queue功能似乎可以满足问题1的需求。在当前的TortoiseHG上面没有支持。MercurialEclipse里面有支持。
对于这个queue的命名,很是奇怪。

先说说流程,目前似乎没有中文翻译:
1. qinit 创建一个个人的临时队列,用于存放你的私人多次提交、修改。
2. qnew, 创建一次提交(patch),然后用qrefresh把代码变化更新到patch中。
   注意,这里有些BT,和平时的先修改后提交,这里先创建,后更新,可以qrefresh多次到一个patch中
3. 多个qnew在你的queue中创建多个patch
4. 可以操作这些patch: qpop/qpush/qdelete等等
5. 自己折腾完了,qcommit生成一次正式的changeset,供push出去,或者守株待兔,等人来pull.

还有问题:
1. queue期间可以update吗?貌似不建议
2. 如果你在公司和家里编写代码,你的queue可以放在网上吗?貌似不行
3. 这个queue真是鸡肋,queue期间,如果你习惯性的commit会怎样?
个人觉得应该允许直线型changeset的合并,在内部仍然保留提交记录。一下解决所有问题。
另外一个可能是把包含多个changeset的bundle作为一个changeset。

相关推荐

    mercurial 3.3.2 源码

    Mercurial是一个跨平台的分布式版本控制软件,主要由Python语言实现,但也包含一个用C语言实现的二进制比较工具。Mercurial一开始的主要运行平台是Linux,现在Mercurial已经被移植到Windows、Mac OS X和大多数的类...

    Mercurial 2.1.1 source release

    Mercurial 2.1.1 版本是一个重要的里程碑,它可能包含了对先前版本的性能优化、错误修复、新功能的添加以及用户体验的改进。以下是一些可能的关键更新和特性: 1. **性能提升**:Mercurial 2.1.1 可能对内部算法...

    Mercurial_使用教程

    Mercurial_使用教程

    Mercurial to Git

    这个命令会将 Mercurial 仓库的全部历史记录导出为 Git 可理解的格式,并通过 `git fast-import` 直接导入到一个新的 Git 仓库中。`--date-format` 参数用于指定日期格式,`--author` 参数确保作者信息被正确保留。 ...

    mercurial-1.8.4-x86.zip(安装包)

    总的来说,Mercurial 1.8.4-x86.zip提供了一个用于分布式版本控制的工具,通过简单的安装过程,用户可以在32位Windows系统上部署Mercurial,配合Readme文档,可以更好地理解和使用这个工具。尽管它不是最新版本,但...

    mercurial_extension.zip

    Mercurial是一个分布式版本控制系统,常简称为Hg。在使用Mercurial进行代码管理时,用户可能会遇到一些错误,比如"The system cannot find the path specified"。这个错误通常表明Mercurial无法找到指定的路径或者...

    Mercurial 分布式版本控制系统 部署 server 服务

    然后使用`hg init`命令初始化一个新的Mercurial仓库,如`hg init myproject`。 3. **设置权限**:确保只有授权的用户可以访问仓库。可以通过配置文件(`hgrc`)设置访问控制,或者使用系统级别的用户和组权限。例如,...

    Mercurial的简单入门

    首先,创建一个本地备份目录,然后初始化一个新的Mercurial仓库: ```bash D:\>hg init. ``` 接下来,添加并提交文件到仓库: ```bash D:\>hg add newfile.cpp D:\>hg ci –m“增加了新的类” -u”qiaoliang” ``...

    Mercurial(Hg)使用参考

    **Mercurial(Hg)使用参考** Mercurial(Hg)是一种分布式版本控制系统,它使得多人协作开发和管理代码变得更为简单高效。在软件开发过程中,版本控制工具是必不可少的,它们可以帮助开发者追踪代码的修改历史,...

    sourceTree1.4.0 可能需要使用的插件 Mercurial

    sourceTree1.4.0 可能需要使用的插件 Mercurial

    mercurial hg 扩展

    Mercurial是一个分布式版本控制系统,与SVN(Subversion)类似,它允许开发者管理代码版本,跟踪变更历史,并进行协作。 描述提到的“实用Python脚本实现hg扩展”,意味着Mercurial扩展通常是以Python编程语言编写...

    Mercurial+IIS+Active Directory+SSL

    通过Mercurial、IIS、Active Directory和SSL的结合,可以构建出一个既安全又高效的分布式版本控制系统。这种方案不仅充分利用了Mercurial的分布式特性和易用性,同时也通过IIS、Active Directory和SSL等技术增强了...

    Mercurial 2.1.1 Windows版

    Mercurial 2.1.1 Inno Setup installer - x86 Windows Mercurial 是一种轻量级分布式版本控制系统,采用Python 语言实现,易于学习和使用,扩展性强。安装程序不需要管理员权限。

    Mercurial 参考手册

    2. 仓库(Repository):存储项目历史变更的地方,每个Mercurial仓库都有一个`.hg`隐藏目录,包含了所有版本信息。 3. 克隆(Clone):复制一个仓库的完整历史到新的位置,保持与原仓库的同步。 4. 提交(Commit):...

    Mercurial与TortoiseHg使用入门教程

    Mercurial,常简称为Hg,是一个分布式版本控制系统,它允许开发者在本地存储完整的代码历史,无需中央服务器。TortoiseHg则是一个图形用户界面(GUI)工具,为Mercurial提供了友好的Windows集成。 为何要使用分布式...

    Mercurial-3.6.3-x64

    Mercurial是一个开源的分布式版本控制系统,设计简洁且高效,特别适合管理大型项目的源代码。它的核心理念是通过提供简单易用的命令行界面和强大的分支管理功能,使得开发者能够轻松地追踪和协作。Mercurial 3.6.3-x...

    Mercurial6.2.2.zip

    标题中的"Mercurial6.2.2.zip"指出我们将探讨的是Mercurial的6.2.2版本,这是一个稳定且功能丰富的发行版。而“git 分布式 mercurial”的标签,则将Mercurial与另一种著名的DVCS——Git进行了关联,暗示我们将对比...

Global site tag (gtag.js) - Google Analytics