Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类似于Mercurial中的VSS标签?_Mercurial - Fatal编程技术网

类似于Mercurial中的VSS标签?

类似于Mercurial中的VSS标签?,mercurial,Mercurial,我想做的是这样的: 当我交付代码时,我想用“交付”来标记我的源代码部分 如果其他开发人员遵循相同的约定,那么应该可以从scm中提取所有标记为已交付的代码 当我再次交付代码时,应该可以移动或替换源代码上交付的标签 在Mercurial中,您能做的最接近的事情是什么,或者按照上面描述的跟踪特定状态下的代码的最佳约定是什么? (实际上,我在VSS中没有做很多这方面的工作,我可能对它的工作原理有误解) 附录1: 我希望我们尽可能在一个分支中工作,尽可能多地提交和拉/推。然后我们需要标签之类的东西来跟踪处

我想做的是这样的:

当我交付代码时,我想用“交付”来标记我的源代码部分

如果其他开发人员遵循相同的约定,那么应该可以从scm中提取所有标记为已交付的代码

当我再次交付代码时,应该可以移动或替换源代码上交付的标签

在Mercurial中,您能做的最接近的事情是什么,或者按照上面描述的跟踪特定状态下的代码的最佳约定是什么? (实际上,我在VSS中没有做很多这方面的工作,我可能对它的工作原理有误解)

附录1:


我希望我们尽可能在一个分支中工作,尽可能多地提交和拉/推。然后我们需要标签之类的东西来跟踪处于特定状态的代码。

Mercurial中最接近的东西是。

听起来您可能需要命名分支。每个开发人员都可以在自己的分支上工作,并在准备就绪时将其分支合并到“已交付”的分支。当所有开发人员都合并了他们的分支后,可以对发行版进行最终检查并添加标签。

如果我理解正确,您希望在多个版本中添加单个文件的标签。例如,在第1版中,将/lib1/中的所有文件标记为“已交付”,在第2版中,将/src/中的所有文件标记为“已交付”。现在,如果有人过来告诉hg给他所有“交付”的代码,您需要在/lib1/版本1中的文件,以及/src/版本2中的文件

如果这是您想要的,那么在hg中是不可能的(有一个很好的理由:这被认为是不好的做法)。在这种情况下,您可能可以将单个回购拆分为两个子回购“lib1”和“src”,分别对这两个子回购进行版本控制。然后,您可以通过在超级存储库中提交,然后在超级存储库中添加标记“delivered”来注册这两个子存储库的特定组合


如果您不想要这样的东西,我不理解在修订中只标记文件子集的目的。在这种情况下,标准标记就足够了,因为您可以在Mercurial中移动公共标记(以及历史!)。

我知道标记和书签。我不认为您可以以相同的方式在源树的部分上聚合标记,但我不认为它们可以以相同的方式移动。我不确定我是否理解“聚合”是什么意思术语的意思是,源代码的不同部分可以单独标记,并且可以在整个源代码上作为一个标签/标签/书签进行威胁。我认为如果我的分支中有其他代码不在“已交付”中,这将不起作用说明?到底什么是不好的做法?对文件而不是项目进行版本控制,并且仅通过(手工编辑的)标签实现项目一致性。这是CVS的主要痛苦之一。我能把你的评论看作是我对你原来问题的理解吗?