- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
情况
我有两个.NET解决方案(Foo
和Bar
)和一个包含ProjectA,ProjectB和ProjectC的公共(public)库。 Foo
和Bar
引用一个或多个库项目,但是这些库项目不在Foo
和Bar
解决方案文件夹中。
目录结构:
-- My Documents*
-- Development
-- Libraries
-- ProjectA
-- ProjectB
-- ProjectC
-- Projects
-- Foo
-- Solution
-- .hg
-- .hgignore
-- Foo { Project Folder }
-- FooTests { Project Folder }
-- Foo.sln { References ProjectA }
-- Foo.suo
-- Bar
-- Solution
-- .hg
-- .hgignore
-- Bar { Project Folder }
-- BarTests { Project Folder }
-- Bar.sln { References ProjectA and ProjectB }
-- Bar.suo
Foo
和
Bar
存储库中。
1| $ hg init main
2| $ cd main
3| $ hg init nested
4| $ echo test > nested/foo
5| $ hg -R nested add nested/foo
6| $ echo nested = nested > .hgsub
7| $ hg add .hgsub
8| $ ci -m "initial commit"
>
是做什么的?我尝试在Mercurial文档中搜索>
,但未找到任何内容。 nested/foo
是什么。 foo
来自哪里?什么是foo
?仓库?一个文件夹? .hgsub
已添加到main
中?还是将其添加到nested
中? Bar
存储库现在已达到修订版10。如果我尝试将工作目录更新为修订版7,这会导致我的库文件夹(My Documents/Development/Libraries/ProjectA
和.../Libraries/ProjectB
)更新到所存储的内容在修订版7中也是如此? ci -m "initial commit"
。这有两件事:(1)将.hgsubstate文件添加到主仓库中,并且(2)将所有更改(包括新的子仓库)提交到主存储库中(消息为“initial commit”)。 .hgsubstate文件的目的是跟踪所有子存储库的状态,因此,如果您返回到较早的修订版,它也会从所有子存储库中获取正确的修订版。
Libraries/ProjectA
,Libraries/ProjectB
和主要存储库(Projects/Foo/Solution
和Projects/Bar/Solution
)必须是单独的存储库。 Projects/Foo/Solution
。 Libraries/ProjectA
克隆到Projects/Foo/Solution
。 ProjectA
添加到Foo
存储库。 .hgsub
的文件,其中包含以下内容:ProjectA = ProjectA
cd c:\...\Projects\Foo\Solution
hg ci -m "Committing subrepo "ProjectA"
Bar
,步骤基本相同,只是.hgsub文件应包含两个项目的条目,如下所示:ProjectA = ProjectA
ProjectB = ProjectB
HG Commit
shell命令来执行此操作,但是现在,您必须使用命令行。
Foo
或
Bar
的更改,您需要对每个子仓库执行
Synchronize/Pull
操作,以使子仓库与库项目存储库中的最新修订保持同步。然后,您再次使用命令行来提交更改(直到版本0.10时才可以使用TortoiseHG提交)。
Synchronize/Push
操作,以将旧版本的库项目放回
Libraries/ProjectX
文件夹中。
最佳答案
您可能会尝试这些东西并比编写您的问题花更多的时间来学习它,但我会咬一口。
Can any or all of these steps be executed with TortoiseHG, as of version 0.9.2? If yes, how?
What does the above code do (a line-by-line explanation would be much appreciated).
hg init main # creates the main repo
cd main # enter the main repo
hg init nested # create the nested. internal repo
echo test > nested/foo # put the word test into the file foo in the nested repo
hg -R nested add nested/foo # do an add in the nested repo of file foo
echo nested = nested > .hgsub # put the string "nested = nested" into a file (in main) named .hgsub
hg add .hgsub # add the file .hgsub into the main repo
Here are some specific questions that came to mind as I was trying to decipher it: What does > do?
In line 5, I don't understand what nested/foo is. Where did foo come from? What is foo? A repository? A folder?
Line 6 - this one completely baffles me.
In line 7, I assume .hgsub is being added to main? Or is it being added to nested?
Let's say I get my subrepos set up, and my Bar repository is now up to revision 10. If I attempt to update to revision 7, will this cause my library folders (My Documents/Development/Libraries/ProjectA and .../Libraries/ProjectB) to update to whatever is stored in revision 7 as well? Given that Foo also refers to Libraries/ProjectA, this could get interesting!
关于version-control - Mercurial Subrepos-如何创建它们以及它们如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2083393/
如果你做一个 hg pull然后是 hg update (或 hg merge ),有没有办法解决这个问题?即:将您的存储库恢复到执行 hg pull 之前的状态? 我相信你可以做到hg update
我有一台带有 ssh 的服务器,我想将其用作中央存储库。但是我不能在上面安装 mercurial。因此,客户端如何在服务器上没有安装 mercurial 的情况下通过 ssh 推送到服务器。 谢谢 最
我们有一个专门的问题跟踪 (Redmine) 机器,它有一个 Mercurial 存储库(称为“Redmine 存储库”)。 Redmine 设置为使用该存储库,据我了解,Redmine 从未对该存储
一个 hg 存储库可以存在于我的本地文件系统上的另一个 hg 存储库中吗? 我正在拉取“sandbox”的 bitbucket wiki,我想知道是否应该将其放置在 repos/sandbox/wik
我有一个项目,我使用 Bitbucket 作为我的 HG 服务器,但我最近发现,作为一个单独的开发人员,我可以免费使用 Fogbugz/Kiln。我想将我的文件移至 Kiln,但我不想丢失我的历史记录
Mercurial 如何判断文件已被修改? 我问的原因是因为当我运行时 hg status它告诉我有几个文件被修改了。 但是,当我运行 hg diff 时没有变化要报告。 我有一个关于为什么会发生这种
我需要获取本地存储库中文件的特定版本/节点的内容,并将其写入临时文件。 我知道可以通过内部Mercurial API进行操作。 有内置命令或扩展名吗? 最佳答案 您可以使用 hg cat : hg c
这两个命令有什么区别(我想回滚到修订版 1): hg update -r 1 hg backout -r 1 --merge (在示例中提示修订为 3) 最佳答案 首先, update -r 1 将撤
我看到 mercurial 有效地压缩了存储库中的文件 (repo/.hg/store/data) 有人知道存储库文件使用哪种压缩吗? 谢谢。 最佳答案 Mercurial 存储库中有两个压缩级别:增
如果 Mercurial does not track file permissions默认情况下,它如何决定它创建的任何文件/目录的权限? 是否使用umask ?如果不是,它有什么用? 我有 rea
我已经阅读了很多关于 Mercurial 及其分支的信息,但是,我仍然是一个版本控制新手。 我目前正在做一个项目,我的任务是开发一个新模块。 我有一个“主”存储库,其中包含项目其余部分的最新代码,以及
尝试运行 hg update 时出现以下错误: abort: Operation not permitted: /var/www/simira/web/public/images/nomination
mercurial 如何处理拆分的文件?如果我创建一个分支并拆分一个文件会发生什么。我可以轻松地从修改原始未拆分文件的另一个分支中提取更改吗? 最佳答案 我只是做了一个小实验。我用一个大文件创建了一个
我想使用hg graft将变更集从一个分支复制到另一个分支。 但是,在变更集中修改的文件已在源分支中重命名(使用hg rename)-在要移植的变更集之前。 当我尝试时,我得到: scanning f
Annotate可以使您看到该行的最新更改,如果该更改是合并,那么我别无选择,只能浏览修订历史记录并查找下一次对其进行修改的情况。 我也尝试过hg grep -l '[contents of line
我有一个小项目,我从集市开始,作为练习bzr的练习。从那以后,我决定选择 Mercurial 。我如何将这个项目迁移到Hg? 最佳答案 我相信您的答案可以在here中找到。 本质上,您只需要运行 $
什么决定分支是否处于非事件状态?是否有客户使用的特定时间段? 我们有很多不活跃的分支。值得我们花时间关闭它们吗? 该文档似乎没有指定如何确定非事件分支: https://www.mercurial-s
假设我创建了一个存储库,添加 x 文件并提交。说大小是 初始提交后的 Mb。 有什么方法可以估计存储库在一年内会有多大? 如果代码行数增加了 10%,存储库会相应增长吗? 提交、分支、标签等的数量如何
我正在使用 Mercurial(特别是 Windows 上的 TortoiseHg)对 VBA 代码进行版本控制。任何尝试过这个的人都知道,只要在项目中的任何地方更改了该变量的任何声明(无论范围如何)
不幸的是,我已经清理了我的 Mercurial 货架,忘记了我需要进行一些更改。我有定期的文件系统备份,但不知道 Mercurial 在哪里存储搁置文件。有人可以告诉我在哪里看吗? Mercurial
我是一名优秀的程序员,十分优秀!