- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
目前我们正在使用 SVN(是的,我知道这很遗憾 :))并且我们正在检查迁移到 Git 或 Hg 的可能性。目前我们有一个 svn 存储库,其结构如下:
Platform 1-
. Country 1
. Customer A
. Project Z
. Project Y
. Customer B
. Project X
. Country 2
. Customer C
. Project W
Platform 2
. Country 1
等等
我们只有 2 个顶级“平台”,但国家、客户,尤其是项目的数量相当多(我确定项目数量 >100)。这种结构对我们来说非常方便,因为它很容易找到必要的项目(因为开发人员知道平台、国家和客户)。通常开发人员可以在 1 周内切换项目几次,这个组织非常重要。
基本用例:
有些人只是浏览 TortoiseSVN Repo 浏览器,找到必要的项目并检查它。
所以现在我们需要一些同样简单但使用 Git/Hg 的东西。据我所知,在 Git 中非常常见的模式 - 1 Repo/1 Project。所以问题是:
我创建了 BitBucket Git 存储库来使用它,但现在还不知道如何组织我们的项目。
请注意 - 分支对我们来说不是很常见的情况,因为项目在开发方面非常小。
最佳答案
As I understand in Git the very common pattern - 1 Repo/1 Project.
这不仅很常见,而且在您使用 Mercurial 或 Git 等分布式版本控制系统时实际上是强制性的。原因是这两个系统还不支持 narrow clones,也就是说,你只下载属于更大存储库中某个子目录的历史的克隆。因此,您需要 checkout 所有内容以获取存储库的一小部分。
因此,为每个项目 创建一个存储库。您可以通过创建像现在这样的文件夹结构来将项目组织成组。文件夹结构不会出现在任何存储库中——它只是对相关存储库进行分组的一种方式。
诸如 Kallithea 之类的工具还可以让您在分层组中组织存储库。这将使您的用户可以方便地浏览存储库。
所以,问题是:
- Is there any way to categorize repos in Git/Hg?
- Is there way to browse repos throug GUI (Win) and pull necessary one?
- Do you have any offer how to organize our repo using Git/Hg?
总结以上答案:是的,您可以组织存储库。您可以通过将它们放入目录结构来在文件系统级别执行此操作,也可以通过使用合适的存储库管理器在 HTTP 级别执行此操作。
如何浏览存储库以找到合适的存储库取决于组织。共享存储库的推荐方式是 HTTP,然后“打开存储库”对话框将不允许您在文件夹中四处浏览——因为文件夹仅存在于由 Kallithea 提供的 URL 中。因此,您的工程师通常会在浏览器中浏览存储库结构,然后将正确的 URL 复制粘贴到 TortoiseHg 中。
当他们从服务器克隆时,工程师应该将本地克隆放入与服务器上的克隆相匹配的层次结构中。此层次结构将通过其本地磁盘上的目录来完成。然后,他们当然可以像往常一样使用 Windows 资源管理器浏览此层次结构。
关于具有复杂项目结构的 Git/Hg 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8936600/
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: How can I see incoming commits in git? “hg 传出”或“hg 传入”
mercurial 命令之间有什么区别, hg 条 hg 取消 hg 恢复 所有这些命令基本上都用于恢复/撤消早期变更集的影响。 最佳答案 hg strip 从存储库中删除变更集及其所有后代。就好像这
您可以使用什么 mercurial 命令在变更集 xyz 之前查看变更集? 如果你这样做 hg log -r :xyz您会看到(包括)xyz 之前的所有变更集 - 按升序列出。但我想轻松地看到之前的变
当我在克隆我的 Git 存储库时,远程内容发生了变化: $ hg push ... abort: refs/heads/master changed on the server, please pul
有人能告诉我为什么最后没有找到任何变化吗? 此外,我收到一条烦人的消息,“.hg/hgrc 中未指定用户名。将不会使用 key 环。” 版本工具:Hg最新版服务器:Linux工作区:~/2012WS
我在我的 Windows 机器上安装了 Tortoise Hg,并且一直通过 Tortoise GUI 和 Windows 命令行使用 mercurial。我按照 http://hg-git.gith
我的项目.hg目录为 40MB。如果我 hg push --verbose --debug到一个空的远程存储库,我看到它发送了数百 MB。额外的开销从何而来? 更新 :hg bundle -a生成一个
对于那些使用带有 MQ 扩展的 Mercurial 的人: 这是我第二次不小心将更改提交到中央存储库( hg push ),而不是将补丁应用到我的工作目录( hg qpush )。 我认为这是非常不幸
在 Mercurial 中,有什么区别 hg revert --all 和 hg up -C? 这两个命令似乎都会恢复所有更改。但有什么区别呢? 最佳答案 通过 hg up,您实际上切换到另一个版本(
如果我从本地 Mercurial 存储库开始,我认为它是“主要”存储库(请原谅我,我的 dvcs 领主),并打算使用 bitbucket 作为备份和问题跟踪工具,我可以进行所有更改在我的本地存储库中并
我的团队使用 mercurial 已经有一段时间了。我们使用 ssh 连接到中央远程存储库。将 ssh 推或拉到远程存储库时没有任何问题......直到今天! 其他人都在局域网上,我远程工作并使用 v
hg revert 和 hg backout 都会还原先前版本所做的更改。两者有什么区别? 最佳答案 考虑到变更集的历史: A --- B --- C --- D --- E [b
我创建了一个新的存储库 test-backout,并在其中添加了一个新文件 file。然后,我每次进行 4 次提交,并使用 将提交编号附加到 file 中 echo [manually entered
在工作中,我使用的是 svn存储库在 7 人之间共享。 为了避免在提交中困扰我的错误并破坏每个人的构建并避免在 svn 中分支,我创建了一个hg svn 的一部分中的存储库我目前正在处理的目录。 我在
我一直在一个分支上做一些开发,并意识到在它完成之前需要先完成其他事情。我决定我将分支我当前的分支并在该分支中进行必要的更改,然后将它们 merge 在一起,然后将我的工作分支 merge 为默认分支。
我有一个使用 mercurial 作为存储库的网络服务器。每天,我们都有应用程序将文件写入我们的服务器,我希望这些文件反射(reflect)在存储库中。有没有一种方法可以添加每天运行的自动“hg ad
在某些情况下,我需要强制 Mercurial 用户运行 hg pull -u在任何之前 hg commit可以允许,即 hg pull将意味着传入队列是空的——此外,我还希望该人使用分支的头部版本。
我正在 Mercurial 中开发一个项目,突然间,当我运行“hg status”时,我在“.hg”目录中看到一堆文件,报告为“未跟踪”。它看起来像这样: ? .hg/00changelog.i ?
这里的问题是 hg 的工作流程显然是在绕圈子: hg pull,再拿一个头 hg merge ,得到未完成的警告未提交的更改 hg commit -m "pre merge commit", 获取消息
我昨天在我的 Mac(雪豹)上重新安装了 Mercurial。 Mercurial 的 UI/控制台语言已从英语更改为丹麦语。我的机器设置为美国英语,键盘布局为丹麦语。我不希望丹麦语翻译生效,因为它不
我是一名优秀的程序员,十分优秀!