问题标签 [dvcs]

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 投票
3 回答
1849 浏览

java - Java中的可嵌入分布式版本控制系统?

是否有一个分布式版本控制系统(如 git 或 Mercurial)可以用作 Java 应用程序中的嵌入式库(实现应用程序数据的版本化和可同步存储),理想情况下是用纯 Java 编写并在许可许可下编写?

0 投票
6 回答
1016 浏览

version-control - DVCS 对开发人员有用吗?

还是传统的客户端-服务器 VCS 更合适?我目前正在使用 TortoiseSVN,但我对 DVCS 很感兴趣,但我不确定尝试使用类似这样的东西是否是一个好主意。

0 投票
6 回答
532 浏览

version-control - 非网络环境的最佳版本控制系统?

我正在指导一个高中机器人团队的编程小组。我想建立一个源代码控制存储库,以避免手动复制用于共享/备份的目录并手动合并这些目录的混乱。构建位置通常没有网络访问权限,因此这导致我使用了我不熟悉的分布式版本控制系统 (DVCS)。

最大的要求如下:

  1. 适用于 Windows XP 和 Vista。(绝对必须)
  2. 可以在本地提交更改。(似乎所有 DVCS 都是这种情况)
  3. 无需网络访问即可合并来自多台计算机的存储库。(可能通过将存储库存储在 USB 驱动器上并将驱动器交换到另一台机器,然后从那里合并)

它还应该易于学习和使用,最好是通过图形 UI,因为我正在与从未使用过版本控制系统的高中生一起工作。

关于哪种 DVCS 最适合此的任何建议。

编辑:

感谢您的回答。Mercurial 看起来不错,但它是否支持将存储库从一个目录合并到另一个目录,还是我必须设置一个本地网络才能合并?

0 投票
1 回答
395 浏览

ubuntu - 我将如何调查和解决 Mercurial 授权问题?

我有一个带有 bitbucket 的私有存储库。

我在 Ubuntu 上使用 Mercurial 分布式 SCM(版本 0.9.3)。

当我尝试克隆我的存储库时,系统会提示我输入正确输入的用户名和密码。

结果我得到:abort: authorization failed

这在 Windows 上工作得很好。

我只是想确保在提交错误之前我没有遗漏一些明显的东西。

我是分布式版本控制的新手。

0 投票
4 回答
6342 浏览

windows - Git - 切换分支(窗口)和未提交的更改

我很难理解一些 git/DCVS 概念。这是发生的事情:

  1. 我创建了一个 git 项目,并从 SVN 存储库中导入了它
  2. 我做了一些承诺
  3. 我想尝试一些东西,所以我创建了一个名为constants-update的分支
  4. 我切换到常量更新分支,移动了一些文件,删除了其他文件并添加了更多
  5. 我致力于这个分支
  6. 现在我正在尝试使用切换到我的主分支git checkout master
  7. 我收到此错误:错误:您对 'src/groovy/Constants.groovy' 进行了本地更改;不能切换分支。

我对 DCVS 的理解是,我可以随意切换分支,即使某个分支的文件比其他分支多或少,只要我提交我的文件。我尝试过提交git commit -a并切换到 master 分支,但我有同样的错误。

附带说明一下,当我提交时,git 警告我 LF 将被 CRLF 替换,并警告我一些尾随空格;在我提交之后,我做了一个git status,一堆文件总是显示为 #modified ....

这是否与 git/ windows有关,或者我不正确理解它应该发生什么?我只想切换到我的主分支,而不会丢失我在另一个分支中的更改。

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 投票
5 回答
2613 浏览

windows - 哪个分布式版本控制系统具有最好的 Windows GUI 前端?

在我的工作场所,我们使用 CVS 作为版本控制系统。由于我们主要使用 Windows,TortoiseCVS 和 WinCVS 作为 CVS 的 GUI 前端。

对于分布式 VCS(bzr、hg、git)之一,是否有类似这些前端的东西?我知道我们可以使用命令行,但这不是一个选项。

我已经尝试过 Bazaar,但对 TortoiseBzr 感到失望。

0 投票
1 回答
1195 浏览

mercurial - 如何配置 tortoisehg 以在 Web 服务器页面中查看“图表”链接?

在 mercurial repo 中我可以看到它。我认为 mercurial 已经在修订图上有了这个功能。

我如何配置 tortoisehg 来实现这一目标?

我想为 hgweb提供类似的东西。

0 投票
4 回答
330 浏览

dvcs - 小型远程员工公司的 DVCS

情况是这样的:在我的小办公室里,因为我们喜欢保持移动,偶尔在家工作,我们没有中央文件服务器,而是将所有办公文档放在一个 SVN 存储库中,每个人都在自己的笔记本电脑上进行结账. 结帐的重量约为 3GB,其中包含修订的 repo:约 6GB。这一切都很好。

问题是很快我们将不再有一个小办公室——我们所有的 5 名员工都将远程工作。我曾考虑购买一台专用服务器并从中运行我们的 SVN 存储库,但我们的两个工作人员将非常远程,并且将使用 3GB/月限制的无线“宽带”,我担心一些大型更新会真的撕毁了他们每月的零用钱,更不用说花一整天的时间来完成了。

阅读有关 Stack Overflow 的几个问题后,似乎有相当多的分布式 VCS 爱好者社区认为 git 或 mercurial 绝对是许多情况下的最佳选择。鉴于所有员工仍然能够至少每两周面对面会面一次(因此处于快速 LAN 上),我想知道 DVCS 是否适合我们?

0 投票
8 回答
27193 浏览

svn - 如何使用 git-svn 使 svn:external 保持最新?

将我的存储库视为 SVN 存储库,我得到:

将其视为 Git 存储库,我得到:

我可以将 baz 克隆到其他地方的本地计算机并添加符号链接,但这只是一个 hack。有没有办法git svn rebase在更新其他所有内容时自动提取这些更改,就像这样svn up做一样?