问题标签 [branch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
36810 浏览

svn - 合并 git 后的 git-svn dcommit 危险吗?

我尝试 git-svn 的动机是轻松的合并和分支。然后我注意到 man git-svn(1) 说:

不建议在您计划从其提交的分支上运行 git-merge 或 git-pull。Subversion 不代表任何合理或有用的合并;因此使用 Subversion 的用户看不到您所做的任何合并。此外,如果您从作为 SVN 分支镜像的 git 分支合并或拉取,dcommit 可能会提交到错误的分支。

这是否意味着我不能从 svn/trunk(或一个分支)创建一个本地分支,破解,合并回 svn/trunk,然后 dcommit?我知道 svn 用户会看到与 svn pre 1.5.x 中合并的相同混乱,但还有其他缺点吗?最后一句话也让我担心。人们是否经常做这些事情?

0 投票
4 回答
31063 浏览

git - 如何让 git-svn 使用特定的 svn 分支作为远程存储库?

一句警告:总的来说,我是一个n00b git。我的团队在 中使用功能分支svn,我想用它git-svn来跟踪我在特定功能分支上的工作。我一直(大致)遵循Andy Delcambre 的帖子来设置我的本地存储git库,但这些说明似乎导致git选择svn最近更改的分支作为远程存储库;问题是那不是我关心的分支。如何控制git-svn使用哪个分支?还是我完全错误地接近这个?

更新:我确实使用了-T-b-t选项(在我的情况下,因为svnrepo 有多个项目,但我希望gitrepo 只包含我正在处理的项目)。

0 投票
6 回答
1545 浏览

version-control - 您如何处理重构和合并需求之间的紧张关系?

我们在交付新版本时的政策是在我们的 VCS 中创建一个分支并将其处理给我们的 QA 团队。当后者开绿灯时,我们标记并发布我们的产品。该分支会保留(仅)接收错误修复,以便我们可以创建技术版本。这些错误修复随后被合并到主干上。

在此期间,主干看到主要的开发工作,并且可能会受到重构更改的影响。

问题是需要有一个稳定的主干(以便错误修复的合并成功 - 如果代码已被提取到另一个方法或移动到另一个类,通常不能)和在引入新功能时需要对其进行重构。

我们的策略是在足够的时间过去并且分支足够稳定之前不进行任何重构。在这种情况下,可以开始在主干上进行重构更改,并且在主干和分支上手动提交错误修复。

但这意味着开发人员必须等待相当长的时间才能在主干上提交任何重构更改,因为这可能会破坏从分支到主干的后续合并。不得不手动将错误从分支移植到主干是很痛苦的。在我看来,这阻碍了发展......

你如何处理这种压力?

谢谢。

0 投票
1 回答
4396 浏览

version-control - 在初始无根据的合并后,我可以使用 Team Explorer 来合并两个分支之间的更改吗?

我对 TFS 中毫无根据的合并的理解是,这是一次性交易,之后可以进行合并而不必毫无根据:

http://msdn.microsoft.com/en-us/library/bd6dxhfy(VS.80).aspx

/baseless - 执行没有基础版本的合并。即,允许用户合并不具有合并关系的文件和文件夹。在无根据的合并之后,存在合并关系并且未来的合并不必是无根据的。

但是,我今晚使用以下设置进行了尝试:

该命令运行良好,文件已合并。但是,如果我返回源代码管理资源管理器并右键单击并在 Dev 分支上选择合并,则 QA 不是一个选项 - 只有主干是。

那么我是否误解了文档,他们真正说的是你总是必须在命令行中执行它,但不必包含 /baseless 开关?

0 投票
14 回答
2103 浏览

svn - 重构和并发开发分支

假设您有几个用于现有软件版本的维护分支。一些开发人员正在维护分支中进行直接更改,并定期合并到主干中。现在对主干代码线进行了广泛的重构,计划在即将发布的主要版本中发布。但这使得维护分支从根本上与主干中的代码不兼容,因为它们可能依赖于不再存在的代码,例如。

您在实践中如何处理这种情况?

0 投票
4 回答
13593 浏览

svn - 如何在 SVN 中分支并让它分支我的 svn:external 文件夹?

我在 Windows 中使用乌龟 svn。

如何在 SVN 中分支并让它分支我的 svn:external 文件夹?

0 投票
4 回答
1803 浏览

svn - 以“敏捷”的节奏维护发布/分支?

我们有一个软件产品,可以根据客户的需求和更通用的路线图发展。

因为我们处于 SCRUM 项目环境中,所以经常会出现新功能进入产品的情况,然后我们面临以下选择:

  • 在已经发布的分支中实现此功能(那么,实际上并不是拥有分支的重点)
  • 建立一个新分支 - 但是我们每三周就有一个分支,它不再是可维护的了

不发布新功能不是一种选择,客户不想等待一个长期的里程碑计划来获得他们想要的功能,而且在客户端模块中移动功能并不总是可行的——有时我们需要改变产品的核心...

考虑到这些限制,有没有人对好的做法有任何反馈?

0 投票
5 回答
14273 浏览

mercurial - 在 Mercurial 上退出向后合并

你如何在不痛苦的情况下扭转合并对极化分支的影响?

这个问题困扰了我好几个月,终于放弃了。

您有 1 个存储库,有 2 个 命名分支。A和B。

发生在 A 上的变化将不可避免地发生在 B 上。

直接发生在 B 上的更改绝不能发生在 A 上。

在这样的配置中,将“B”合并到“A”中会在存储库中产生一个可怕的问题,因为对 B 的所有更改都出现在 A 中,就好像它们是在 A 中进行的一样。

从这种情况中恢复的唯一“正常”方法似乎是“退出”合并,即:

看起来一切都很好而且花花公子,直到你决定稍后在正确的方向上合并,你最终会发生各种令人讨厌的事情,并且在专门的分支 B 上被删除/注释掉的代码突然变得未删除或未注释。

到目前为止,除了“让它做它的事情,然后手动解决所有问题”之外,还没有一个可行的解决方案,老实说,这有点令人难以置信。

这是澄清问题的图像:

[原图丢失]

文件 C & E (或更改 C & E ) 必须只出现在分支 b 上,而不能出现在分支 a 上。此处的修订版 A9(分支 a,revno 9)是问题的开始。

修订 A10 和 A11 是“回退合并”和“合并回退”阶段。

修订版 B12 是反复无常的,错误地反复删除了一个不打算删除的更改。

这种困境引起了很多挫折和蓝烟,我想结束它。

笔记

尝试禁止反向合并发生可能是显而易见的答案,无论是使用钩子还是使用策略,我发现解决这个问题的能力相当高,而且发生这种情况的可能性很大,即使有对策,你仍然必须假设它不可避免地发生,以便您可以在它发生时解决它。

详细说明

在模型中,我使用了单独的文件。这些使问题听起来很简单。这些仅代表可能是单独的行的任意更改。

此外,雪上加霜的是,分支 A 发生了重大变化,这留下了长期存在的问题“分支 A 中的更改是否与分支 B 中刚刚出现(并退出)的变化相冲突,这看起来像是一个变化改为在分支 A 上“

关于历史重写技巧:

所有这些追溯解决方案的问题如下:

  1. 我们有 9000 个提交。
  2. 因此,新鲜克隆需要半小时
  3. 如果在某处甚至存在一个错误的存储库克隆,它就有可能重新与原始存储库联系,并再次将其撞毁。
  4. 每个人都已经克隆了这个存储库,现在已经过去了几天,正在进行提交。
  5. 一个这样的克隆恰好是一个实时站点,所以“擦除那个并从头开始”=“大诺诺”

(我承认,以上许多内容有点愚蠢,但它们不在我的控制范围内)。

唯一可行的解​​决方案是假设人们可以并且将会做错所有事情,并且有一种方法可以“消除”这种错误。

0 投票
7 回答
650121 浏览

git - 命名 git 分支的常用做法有哪些示例?

几个月来,我一直在使用本地 git 存储库与我小组的 CVS 存储库进行交互。我已经制作了几乎神经质的分支,谢天谢地,其中大部分已经合并回我的树干。但是命名开始成为一个问题。如果我有一个任务很容易用一个简单的标签命名,但我分三个阶段完成,每个阶段都包括自己的分支和合并情况,那么我可以每次都重复分支名称,但这会使历史有点混乱。如果我的名称更具体,每个阶段都有单独的描述,那么分支名称开始变得冗长而笨拙。

我确实在这里学习了查看旧线程,我可以开始使用名称中的 / 来命名分支,即主题/任务或类似的东西。我可能会开始这样做,看看它是否有助于更好地组织事情。

命名 git 分支的最佳实践是什么?

编辑:实际上没有人建议任何命名约定。当我完成它们时,我会删除它们。由于管理层不断调整我的优先级,我碰巧有几个。:) 作为一个示例,为什么我可能需要在一个任务上使用多个分支,假设我需要将任务中的第一个离散里程碑提交到组的 CVS 存储库。那时,由于我与 CVS 的交互不完善,我将执行该提交,然后终止该分支。(如果我尝试在那时继续使用相同的分支,我已经看到了与 CVS 交互的太多奇怪之处。)

0 投票
2 回答
4807 浏览

visual-studio - TFS SourceControl 从主干分支合并

我在 Visual Studio TFS 中进行分支时遇到问题。这可能是由于我正在开发的方法,但如果是这种情况,请让我知道分支的最佳实践是什么,我将更改我们的程序。

大约一个月前,我分支了一个项目,以便我可以开始开发新版本的 Web 应用程序,但我不希望应用程序的主干受到我的更改的影响,因为我测试并试图将事情搞定生产水平状态。

因此,就在几天前,我们发现了在生产中运行的当前版本的应用程序存在一些错误。我在主分支上修复了这些错误,重新部署了 Web 应用程序,并将错误修复签入到主应用程序主干。这就是问题所在。现在主干有错误修复,但我的新版本分支没有。

这是我的问题:我如何进行版本比较或类似的事情以将错误修复到分支项目中?

我可能会做一些不寻常的事情。这是由于我缺乏对分支和开发生命周期的了解。请让我知道是否有更好的方法可以在您的开发商店中练习。

干杯,

C