visual-studio-2010 - Visual Studio 2010年白痴 list list

标签 visual-studio-2010 mercurial tortoisehg kiln

因此,我是一个源代码控制白痴,所以请用此清单使我幽默。

我最终决定在下一个项目中使用Mercurial + TortoiseHg +(VS2010 + HgSccPackage)+窑炉。

我读了http://hginit.com/并且玩了很多,但是我对源代码控制了解不多,所以我不想在这里犯错,我目前的项目是我迄今为止最大,最有价值的项目。

所以这是我的清单:

创建:


我在窑炉中在线创建了一个新的仓库。
然后在我的电脑上克隆它。
我将整个项目文件夹(该文件夹下有多个项目的解决方案)复制到存储库中。
我将this content添加到回购根目录中的.hgignore文件中。
从TortoiseHg,我单击添加文件
我偶尔从VS提交。
当我准备好并准备好时,我就进入Sync-> Push
(所以这很好吗?)


我在这里遇到的一个问题是。我在HgScc中找不到等效的“添加文件”,当我从VS-IDE添加新文件时注意到,它没有用于源代码管理的图标。 (它不添加到水银吗?)

因此,我最终通过IDE添加了文件,但它们没有检查。然后经过几次提交(和其他我不记得的事情)之后,我发现这里有一个额外的分支或其他东西:


现在,如果我尝试推动,我将得到"(did you forget to merge? use push -f to force)"。 (是的,我打进来的东西,而接下来的变化我没有)

无论如何,那只是一个操场,**每当我从VS创建文件修复问题时,我刚刚意识到使用TortoiseHG->添加文件? **(还是这里有更好的方法?)

分枝:

因此,我对命名分支感到有些困惑,但Kiln却是他们自己的分支/克隆对象。我read instructions here


因此,在线时,我可以选择在窑中在线创建“分支”。
然后,我将其克隆为本地的新存储库(就像它是一个新存储库一样)
我将进行更改,提交,推送。
然后,我将从主存储库中拉出,从分支存储库中推至主存储库。


因此,我在这里实际上没有看到任何合并选项,我想由Mercurial自行处理合并吗?所以我看不到资源库浏览器中的分支?这是应该怎么做的吗?

最后一个问题,“查看历史记录”和“查看更改日志”选项之间有什么区别,它们对应于哪些hg选项?





更新:忘了提及我是该项目上唯一的孤独开发人员。 = P

最佳答案

这是您的个人问题,每部分一个,对每个问题都有我的意见/答案。



7.当我准备好并准备就绪时,我进入Sync-> Push(所以这很好吗?

正确。

此工作流程中可能有所不同的一件事是,是否还有其他人也推送到同一存储库。如果有的话,有时其他人将变更集推送到了您本地没有的存储库中。当您尝试推送将在在线存储库中创建分支的分支时,该分支会被多个“头”显示(如果您不明白我的意思,则应该在Mercurial上下文中查找该术语。)通常您不会不允许这种情况发生,因此推送将被中止。

当它异常终止时,您可以将变更集从在线存储库中拉到本地,将变更集的头与刚刚拉出的头合并,然后重新尝试该推送,通常会成功(除非您很不幸,并且其他人同时推动更多。)



至于HgSCC和添加文件,我在使用HgSCC时遇到了问题,所以我切换到了VisualHg-http://visualhg.codeplex.com,特别是因为关于新文件的1.52版本的HgSCC似乎有问题。如果找不到解决方案,建议您尝试VisualHG。



你忘了合并吗?

您应该将所做的更改合并在一起,以便只剩下一个头。在该示例屏幕快照中,您有3个,即“向表单2添加了按钮”,“最终提交”和“第2个PRJ(2)”。您应该将其更新为您认为是“项目中的大多数”项目,选择它,然后右键单击其他项目之一,然后在TortoiseHg中选择“与...合并”,然后完成合并和提交。每个这样的merge + commit将删除1个头,因此您至少需要2个这样的合并才能恢复到1个头。



与许多其他人相比,Kiln和Fogcreek在如何处理分支上有不同的概念。他们建议您创建一个完全不同的分支存储库并在其中工作,而不要使用命名分支。命名分支类似于您将屏幕快照中的三个变更集(以“最终提交”结尾的三个变更集)命名为添加新表单或修复大错误的分支。

因此,窑炉的“方法”将是拥有3个克隆,而不是像您在这里做的那样拥有3个克隆,每个克隆只有3个克隆到其分支头。基本上,您将拥有1个repo克隆,其中的所有内容均达到“添加的第二种形式”,并继续进行“ second proj”,但它们之间的变更集将不存在。第二个克隆最多包含“添加的第二个表单”,然后一个额外的标签为“添加了第二个表单的按钮”,第三个克隆具有“添加的第二个表单”,然后三个以“最终提交”结尾。

当然,最后,当推入并拉回主存储库时,无论如何最终还是要有那些分支,但他们建议您将分支存储库用于较大的分支,例如添加大型功能,模块等。



我猜想Mercurial会自己处理合并吗?

仅当您在原始存储库和分支存储库克隆中都有新的变更集时,才能在您的方案中进行合并。

如果有的话,将其从分支存储库推送到原始存储库(或以其他方式拉出)将在目标存储库中添加新头。这就是合并将帮助您避免的事情。

这样,您的工作流程将如下所示:


将所有必需的更改推送到分支存储库(即,由于您首先需要分支存储库的原因而产生的更改集,大的错误修正,新功能,大的重写等)
尝试从分支存储库推送到原始存储库,得到消息,这将在目标存储库中创建头,因此您将其中止。
从原始存储库下拉到分支存储库。这将创造另一个头。
从分支存储库拉到本地存储库,然后在此处进行合并,处理所有合并冲突,最后提交合并更改集
从本地存储库推送回分支存储库
在正式发布之前,完成您可能希望在Kiln中进行的所有代码审查
从分支存储库推送到原始存储库(请注意,这与步骤2相同,如果其他人(或您)同时在原始存储库中做了更多工作,请跳回到步骤3并重复)




查看历史记录和查看更改日志选项之间的区别

不同之处在于您所看的东西。查看历史记录始终显示所选内容的历史记录,无论是文件还是解决方案文件本身,即。只是涉及该文件的变更集。

查看更改日志,无论您选择什么,都可以查看存储库的更改集日志。

关于visual-studio-2010 - Visual Studio 2010年白痴 list list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4447987/

相关文章:

visual-studio - 在 Visual Studio 2015 中打开 VSTO 项目

visual-studio - 打开网站时 Visual Studio 2010 挂起

c++ - 在 Visual C++ 上使用 msxml6.h 时出错

python - IIS 7.5 上的 Mercurial 和 hgweb - python 错误

cmd - 通过cmd远程执行命令(TortoiseHG)(PsExec)

git - TortoiseHg/Mercurial <=> TortoiseGit <=> TortoiseSvn/Subversion的快速比较

version-control - merge 后龟 Mercurial 红线

visual-studio-2010 - 当我尝试在 VS 2010 中运行 Nuint 测试时,此程序集不是使用任何已知的测试框架构建的错误

user-interface - IntelliJ 项目 Pane 下的所有文件都是红色的

visual-studio - 为什么TortoiseHg认为Resource.h是二进制文件?