问题标签 [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.
svn - 复制受版本控制的目录
我很好奇是否可以复制受版本控制的目录并开始处理两个副本。
我知道它可以从一个 VCS 到另一个不同,但我故意不指定任何 VCS,因为我对不同的情况感到好奇。
我最近在和一位同事谈论在 SVN 中做这件事。我认为应该没问题,但我仍然不能 100% 确定,因为我不知道 SVN 究竟在工作副本中存储了什么。
但是,如果我们谈论 DVCS 世界,事情可能会更加不清楚,因为每个工作副本本身就是一个存储库。现在面临在 bzr 中这样做,我决定提出这个问题。
后期编辑:
有人问我为什么要这么做。这是整个故事:
在 SVN 的情况下,因为不在办公室,与 SVN 服务器的连接非常慢,所以我和我的同事决定只检查一次源并制作本地副本。这就是我们所做的并且效果很好,但我仍然想知道它是否可以保证工作,或者它只是发生了。
在 bzr 案例中,我计划将“主”存储库移动到另一台服务器。所以我想把它复制到那里并开始考虑主仓库。我想最安全的方法是克隆。
version-control - 对于拥有 1000 多个开发人员的组织,您会使用哪种版本控制系统?为什么?
那里有许多 SCM 系统。一些开放的,一些封闭的,一些免费的,一些相当昂贵的。对于拥有 3000 多名开发人员且拥有多个站点(一些位于非常慢的链接后面)的组织,您会使用哪一个(请仅选择一个)?解释你为什么选择你选择的那个。(给出一些理由,而不仅仅是“因为”。)
version-control - 是否有可以管理大文件的分布式 VCS?
是否有可以处理大于可用 RAM 的文件的分布式版本控制系统(git、bazaar、mercurial、darcs 等)?
我需要能够提交大型二进制文件(即数据集、源视频/图像、档案),但我不需要能够区分它们,只需能够提交然后在文件更改时更新。
我上次看这个大约是一年前,没有一个明显的候选人允许这样做,因为它们都是为了速度而设计的。这给我留下了一个用于管理代码的 VCS 和用于大文件的其他东西(“资产管理”软件或只是 rsync 和脚本),当两者的目录结构重叠时,这非常难看。
git - 如何确保我的 git repo 代码是安全的?
如果我们的组织要从 subversion 之类的中央服务器 VCS 切换到 git 之类的分布式 VCS,我如何确保我的所有代码免受硬件故障的影响?
使用中央服务器 VCS,我只需要每天备份存储库。如果我们使用 DVCS,那么所有开发人员机器上都会有大量代码分支,并且如果该硬件出现故障(或者开发人员丢失了他的笔记本电脑或被盗),那么我们将没有任何备份.
请注意,我不认为“让开发人员将分支推送到服务器”是一个好的选择——这很乏味,开发人员最终不会这样做。
有没有解决这个问题的通用方法?
一些澄清:
使用本机中央服务器 VCS ,除了开发人员最近的更改之外,所有内容都必须在中央服务器上。因此,例如,如果开发人员决定分支进行错误修复,则该分支位于中央服务器上并且可以立即进行备份。
如果我们使用 DVCS,那么开发人员可以创建一个本地分支(实际上是许多本地分支)。在开发人员认为“哦,是的,我应该将其推送到中央服务器”之前,这些分支都不在中央服务器上并且可用于备份。
所以我看到的区别(如果我错了,请纠正我!):如果我们使用 DVCS,但使用普通 VCS,半实现的功能和错误修复可能无法用于中央服务器上的备份。我如何保证该代码的安全?
version-control - 集中式和分布式版本控制系统的比较
使用集中式与分布式版本控制系统 (DVCS)的优缺点是什么?您在 DVCS 中遇到过任何问题吗?您是如何防范这些问题的?保持讨论工具不可知论和燃烧到最低限度。
对于那些想知道有哪些 DVCS 工具可用的人,这里是最知名的免费/开源 DVCS 列表:
- Linux 内核和 Ruby on Rails使用的Git(用 C 语言编写)。
- Mercurial,(用 Python 编写)由Mozilla 和 OpenJDK使用。
- Bazaar,(用 Python 编写)供Ubuntu 开发人员使用。
- Darcs,(用 Haskell 编写)。
git - 使用 git 版本控制系统锁定二进制文件
一年半以来,我一直在关注 git 社区,希望能够摆脱 SVN。阻碍我的一个特殊问题是无法锁定二进制文件。在过去的一年里,我还没有看到这个问题的进展。我知道锁定文件违背了分布式源代码控制的基本原则,但我不知道当存在二进制文件冲突的可能性时,Web 开发公司如何利用 git 来跟踪源代码和图像文件的更改。
为了达到锁定的效果,必须确定一个“中央”存储库。不管 git 的分布式特性如何,大多数公司都会有一个软件项目的“中央”存储库。我们应该能够将文件标记为需要从指定地址的管理 git 存储库中锁定。也许这很困难,因为 git 跟踪文件内容而不是文件?
你们有没有处理过修改前应该锁定的 git 和二进制文件的经验?
注意:Source Gear 的新开源分布式版本控制项目 Veracity 似乎将锁定作为其目标之一。
mercurial - 如何将 bitbucket 存储库与托管的 FogBugz 按需版本集成?
我使用 FogBugz 的按需(托管)版本。我想开始使用 Mercurial 进行源代码控制。我想集成 FogBugz 和 BitBucket 存储库。我试了一下,但事情进展并不顺利。
FogBugz 要求您将 Mercurial 客户端连接到 fogbugz.py python 脚本。TortoiseHg 似乎没有他们在说明中引用的 hgext 目录。
那么有没有人成功地做过类似的事情?
git - 使用分布式版本控制时的构建顺序
现在,我们正在使用 Perforce 进行版本控制。它有一个方便的特性,即严格增加的更改编号,我们可以使用它来引用构建,例如“如果您的构建至少为 44902,您将获得错误修复”。
我想改用分布式系统(可能是 git),以便更轻松地进行分支和在家工作。(Perforce 完全可以实现这两者,但 git 工作流有一些优势。)因此,尽管“附属开发”将是分布式的,而不是指通用的修订顺序,但我们仍然会维护一个主 git 存储库,所有更改都会需要在创建构建之前输入。
保留严格增加的构建 ID 的最佳方法是什么?我能想到的最直接的方法是有某种 post-commit 钩子,只要主 repo 更新就会触发,它会注册(哈希)新树对象(或提交对象?我是新手git) 带有一个分发 id 的集中式数据库。(我说“数据库”,但我可能会用 git 标签来做,只是寻找下一个可用的标签号或其他东西。所以“数据库”实际上是 .git/refs/tags/build-id/。 )
这是可行的,但我想知道是否有更简单、已经实现或标准/“最佳实践”的方式来实现这一点。
windows - Git 可以在 Windows 上运行吗?
我一直在 Linux 上工作,我对 Windows 一无所知,甚至没有 Windows 机器。Git 现在可以在 Windows 上运行吗?还是我使用它给我的 Windows 朋友带来了问题?
dvcs - 人们如何看待化石 DVCS?
化石http://www.fossil-scm.org
我最近发现了这个,并开始在我的家庭项目中使用它。我想听听其他人对这个 VCS 的看法。
我认为缺少的是 IDE 支持。希望它会来,但我使用命令行就好了。
关于化石我最喜欢的东西:带有内置 Web 服务器 wiki 和错误跟踪的单个可执行文件。存储库只是一个 SQLite ( http://www.sqlite.org ) 数据库文件,很容易在上面进行备份。我也喜欢我可以从中运行化石并将存储库保存在我的拇指驱动器上。这意味着我的软件开发已经变得完全可移植。
告诉我你的想法....