我们是由两名开发人员开发PHP / MySQL应用程序的团队。我们已经使用Netbeans / TortoiseHG已有一段时间了,但由于我们的项目没有交叉,开发相当简单和直接,我们一直使用Mercurial主要有一个中央存储库,我们都可以找到最新的无论其他人正在做什么的版本。
到目前为止,开发路径遵循非常简单的步骤:
如您所见,非常简单且有限,但足以满足我们的需求。
但是现在我正在开发一个需要真正版本控制的项目。就我而言,这意味着我需要保留两个独立的独立开发路径,一个用于生产,一个用于开发:
我的问题是,我应该如何设置这个项目,从目录结构到NetBeans和TortoiseHG?什么是最佳做法?
顺便说一句,我使用NetBeans IDE 7.3和TortoiseHG 2.7.1与Mercurial-2.5.2
为了让你了解我的位置,我在TortoiseHG中进行了一些分支,但我得到的结果并不是我所期望的(我没有得到我希望的两个独立的文件集,如同独立工作)。我不知道我做错了还是分支不是我需要的。
所以,由于分支失败而不知道该怎么做,我想在同一个Netbeans项目中创建多个文件夹/目录,每个版本一个,并在其版本之后命名每个文件夹(version1.0,version2.0, 3.0版...)。然后我将项目的整个文件结构放在每个文件夹中并保持对更新的手动控制,即,在任何更改之后,我会根据需要手动将文件从一个“文件夹版本”复制到另一个“文件夹版本”。但这在很多层面看起来都是错误的。
根据我写的内容,你能告诉我如何正确处理这个问题吗?什么是最佳做法?或者你能指出我正确的方向,在那里我可以找到解释如何到达那里的教程吗?
谢谢, S上。
答案 0 :(得分:1)
这就是我在Netbeans和Subversion的类似情况下的工作方式。可能并不完全相同,但我的经验可能有所帮助。
分支确实应该用于你的目的所以我不明白你的意思是你没有得到不同的文件集。
即使项目有多个版本,我只在nb中创建一个带有1个本地副本的项目。 (每个版本没有多个文件夹或项目)。
假设您已启动此项目,并且已将其存储在存储库的主干中。现在,您应该创建一个新分支,以包含您希望将来上传的更改。
右键单击NB中项目视图中的文件夹(可能是根文件夹)并选择:
颠覆>复制>复制到
在那里,您应该能够在共享存储库中找到分支文件夹,并选择它以制作项目的全新副本。
从现在开始,这很容易。每次您必须从主项目切换到将来的更新时,您可以选择要处理的文件版本:
颠覆>复制>切换到复制
在这里,您可以选择将本地文件更新到主干或其他分支。
颠覆>复制>合并变更
此选项最后允许您将不同的分支和主干合并到一个文件中。
非常有用的是可以在显示您正在处理的文件版本的文件旁边显示标签:
这里清楚地表明我没有处理文件的trunk版本,而是在一个名为test的分支上。
答案 1 :(得分:1)
谢谢CosLu,
你让我走在正确的道路上,现在我明白了它是如何运作的......
分支是可行的方法,但它不会在NetBeans环境中创建第二个项目。相反,您可以根据需要在TortoiseHG / Mercurial中拥有尽可能多的分支,并且一次只能在NetBeans环境中显示其中一个分支。
通过几个步骤,这就是我理解它的工作方式。
要处理与当前活动的路径不同的路径(分支),只需转到TortoiseHG,右键单击要工作的分支的头部,然后选择“更新”。在确认对话框中单击“确定”,即可开始使用。在NetBeans环境中,项目将反映该分支。
注意当时哪个分支处于活动状态非常重要,因此不要对错误的分支进行更改。
我不知道的这个难题的唯一部分是如何从一个分支到另一个分支进行选择性更改。例如,如果我对我的生产系统进行了更改并希望它反映在我的开发系统上,而不合并它们,我该如何操作?但这超出了这个问题的范围......
答案 2 :(得分:0)
如何从第二个分支创建第三个分支。并将第3个分支与第1个分支合并。第二个分支仍然没有合并。