在Mercurial中获取特定文件的变更集版本的最简单方法是什么?我们对svn所做的一件类似的事情是在命令行中运行“svn--info”,然后获取修订号。Mercurial有类似的方法吗?最简单的方法是hg log-l1路径/to/file您缺少的概念是所有文件都是相同的变更集。与SVN不同,您更新整个工作目录,而不仅仅是文件夹和文件。所以你想要:
hg id
仅获取版本号和哈希,或
hg parents
要获取当前工作目录所在评论的信息,或
hg summary
查看有关您所处签出位置的
我并没有使用Ottoisehg的身份验证,只是需要看看是否有同事可以给我一些更改。他可以从web服务器提供的url浏览我的repo,还可以很好地从我这里获取变更集
他不能做的是通过内置的web服务器将它们推给我。我在TortoiseHG中配置了“允许推送”旁边的“*”设置,任何人都可以在没有身份验证的情况下推送
尽管如此,当乌龟试图推,我只是得到“中止推”在状态栏
是否有人知道如何获取更多有关它为何会中止的信息?默认情况下,推送仅通过SSL接受。您需要将web.push_ssl设置为false:
我在mercurial有两个分支
default named
|r1
|r2
|r3 -------- named branch created here.
| |r4
| |r5
| r6 |
| |r7
| |
-----------> | r8 How do I achieve this catch-up?
| |
我想从默认值更
我有一个像这样的易变回购,在另一个次级回购中有一个次级回购:
Root
.hg
.hgsub
.hgsubstate
Nested
.hg
.hgsub
.hgsubstate
foo.txt
FurtherNested
.hg
bar.txt
如果我更改foo.txt和bar.txt并从根目录内部提交,那么一切正常,所有嵌套的子repo都提交了。但是,如果我只更改bar.txt并从根目录提交,那么
有没有一种方法可以克隆附带次级回购协议的回购协议,但不需要Mercurial拉动所有次级回购协议
虽然hg clone-U可以用来获取回购协议的空克隆,但没有什么能说服hg update避免从拉取所有子回购协议开始
我应该指出,在创建这样一个克隆后,保持轻松同步到头部修订版的能力是至关重要的。如果您有子repo,工作目录必须包含该子repo的某些版本。如果指定,该版本可以是固定的旧版本,如果未指定,则为tip
您不能在未获得子回购协议的情况下更新回购协议;如果您有一个没有它们的完整的工作目录,那
我想这样做,但hg导出不适用于合并变更集(请参阅)。有没有办法使用hg pull进行一系列修订?例如,假设我想删除999修订版,我想说:
hg init NewRepo
hg pull ../OldRepo -r 0:1000
hg pull ../OldRepo -r 1000:tip
有什么想法吗?Pull无法提取一系列修订,因为存储库中存在的每个mercurial修订都必须在该修订中包含其所有祖先变更集。因此,如果你这样做:
hg pull ../oldRepo -r 1000
您也可
我想知道是否有一种方法可以在变更集在本地提交或推送到存储库时自动标记变更集
我希望每个变更集都有一个带有版本/内部版本号的标记。我计划将我的版本/内部版本号存储在数据库中,并希望有一个脚本从数据库中检索该值,并向变更集添加一个标记。在推送到存储库时,是否可以自动调用脚本作为提交后事件或推后事件来执行此操作
我也愿意使用任何其他方法在每次提交/推送时实现自动标记。与其为每个变更集创建标记,不如尝试以下方法之一:
是否将变更集哈希用作标识符
是否使用从日志生成的字符串作为标识符(请参见下文)
可
我已将许多更改提交到本地存储库,但尚未推送。因为在一个特性上花费的时间比预期的要长,所以我想在推之前将这些更改交换到一个命名的分支上。我怎样才能做到这一点?您可以使用。假设要移动的变更集是修订版1-3:
hg qimport -r 1:3 # convert revisions to patches
hg qpop -a # remove all them from history
hg branch new # start a new branch
hg
我在.hgsub中有一个到子存储库的条目,它是使用https调用的
myrepo = https://user@bitbucket.org/user/project
现在,我想使用ssh,因为这两个存储库都是我的,我已经创建了一个ssh密钥。因此,它将是:
myrepo = ssh://hg@bitbucket.org/user/project
我没有改变,也没有测试过。有人知道更改此url是否会增加某种问题吗?只要您有密码或公钥/私钥组合可与ssh一起使用,就可以了,因为它们与此处的示例语
我的问题很简单
我支持一个具有攻击性的代理、防火墙和所有已知的使开发人员生活痛苦的人类方式,我不能从谷歌代码或任何其他类型的在线存储库中克隆存储库
问题,是否有一个在线工具允许我至少克隆mercurial存储库,而不必使用非http协议进行访问?我怀疑您是否能够在您的大学机器上使用一个工具来绕过网络限制
我问了一位系统管理员朋友,我们一起想出了一些主意。这些都是相当模糊的,因为关于大学网络的信息确实不足以给出明确的解决方案。然而,它们都需要大学网络之外的另一台机器的帮助。嗯,几乎所有的
叉
可以
我有一个简单的Ubuntu 10.10、Nginx、Mercurial、PHP和MySQL堆栈
当前文件结构:
/opt/nginx/html - document root for nginx (where my website files are)
/opt/nginx/html/.hg - repository data
/usr/share/mercurial/ - where the templates/static folder is
我正在运行hg-serve,它位于localh
希望这是一个快速修复那些有经验的
我刚刚在我的共享hostgator服务器上完成了从Redmine和Mercurial文档到tee的Mercurial和Redmine的安装,但遇到了一个小问题。Mercurial工作得很好,我能够创建一个repo,克隆它,并同步到它,没有任何问题,除非当我将repo添加到Redmine并转到repository选项卡时,我得到一个404错误。我确保再次检查我是否从根目录开始设置了目录,但它不起作用。我尝试了多种不同的方法写出目录,但还是没有成功。我最终打开了我的
当用户提交变更集时,我希望显示一条消息,说明提交变更集的分支
例如:
$hg commit -m 'Fix bug'
Changeset committed on branch bugfix
我是否真的需要修改hg提交代码,或者这是一种更快/更简单的方法?添加到存储库的。hg/hgrc:
[hooks]
commit=echo "Changeset committed on branch `hg branch`"
不幸的是,ssg的答案不能移植到例如Windows(因为有反勾号),但这应该可
我的Windows文件结构如下:
Stable
ProjectA
SharedLibrary
Stable包含主回购协议ProjectA和SharedLibrary是Stable的子库。.hgsub文件包含:
ProjectA = ProjectA
SharedLibrary = SharedLibrary
在大多数情况下,一切似乎都正常工作。主回购协议将识别子回购协议,我可以在主回购协议上执行类似于hg status-S的操作,它将通过子回购协议递归提交似乎也能正常工作
当
我正在尝试编写一个批处理文件,以便使用我正在使用的IDE(VDFStudio)中的OrtoisehG注释。IDE以小写形式提供文件名,但TortoiseHg要求文件名大小写正确(例如,文件可以存储为“C:\file.txt”,因此TortoiseHg将无法识别“C:\file.txt”)
我的批处理文件如下所示:
thg annotate %1
我需要某种方法将%1(给定文件)替换为具有适当大小写的文件名。使用“%~f1”,而不是%1
请参阅帮助中有关这些»特殊«扩展的文档(接近结尾)。或使用
尽管Mercurial具有分散的性质,但我们有一个集中的服务器,我们都将其推到该服务器上,并在夜间进行构建、打包等
下面是我们想要实现的:其中一个受源代码控制的文件包含主版本号+次版本号,理想情况下,每次提交时都必须增加这些版本号。由于在开发人员的机器上不可能进行集中编号,因此我们考虑在主服务器上使用一个预提交脚本,该脚本将为每次推送的提交向该文件写入一个新的次要版本号。问题是:
由于它是预提交的,所以此文件更改是否可以作为同一提交的一部分
如果不是,预提交会导致另一次提交吗?如何防止它级联/
hg convert似乎没有意识到在这个项目中应该只有一个head,我转换的SVN存储库没有任何分支。我正在尝试手动关闭旧的头部,使用。然而,当我尝试这一点时,我得到:
$ hg update -C tip
303 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg merge $BRANCH
abort: merging with a working directory ancestor has no
有时我似乎无法跟踪合并冲突。
我需要一个命令,允许我丢弃一个未提交的文件,然后用远程副本更新它
我尝试了hg-revert-myfile,然后是hg-pull,hg-commit
但它仍然不允许我合并或提交
它一直告诉我先解决未解决的冲突。您可能需要使用hg resolve让Mercurial知道您已经解决了冲突。从手册页:
hg resolve [OPTION]... [FILE]...
redo merges or set/view the merge status of files
我有一个带有两个补丁队列的本地回购,patches和myproject。一个用于发布分支中的bug修复,另一个用于单独项目的工作
修补程序:本地配置调试bugfix1 bugfix2
myproject:本地配置myproject1 myproject2
我想要一个由两个队列共享的本地配置补丁的副本。一种可能的解决方案是将补丁程序myproject/local config符号链接到../patches/local config
有没有更合适的方法来实现这一点?我认为您无法轻松或安全地在队列
有目录结构的
foo
-1.txt
-1.notxt
-bar
-2.txt
-3.notxt
-sub
-1.txt
-2.txt
another-folders-and-files
要排除文件夹foo及其子文件夹中的所有非“.txt”文件。
最相似的模式是:
^foo/(?!.*\.txt$)
但它不仅从foo中排除了1.notxt文件,还排除了所有子文件夹。
我认为,这是因为酒吧是符合我的排除模式,但我不明白如何说汞不忽视酒吧
有什么想法吗?不幸的是,me
我的回购协议目前如下:
O 7: default
|
O 6: default
|
| O 5: default
| |
| O 4: default
| |
| O 3: default
| /
O 2: default
|
O 1: default
我想将6和7移动到一个新的分支,我如何才能做到这一点?您可以使用。它需要启用,但该链接包含如何启用的信息
命令将是:
hg update 2
hg branch newbranch
hg commit -m "Creating new
我在从命令行执行thg serve时遇到问题。我正在执行以下命令行:
thg serve 8082 --web-conf "E:\Mercurial_Repositories\settings.config"
但我得到的是Web服务器没有配置也没有启动。但当我从工作台内启动web服务时,日志显示以下执行行:
hg serve --port 8081 --debug --web-conf c:\users\vailla~1\appdata\local\temp\4\thg.lov
这很奇怪。我
git log——第一个父级忽略合并提交的所有父级,但第一个父级除外
例如:
$ git log --oneline --graph
* 087f5ed Master C
* 36c50a2 Merge branch 'feature'
|\
| * 98c89df Feature B
| * 89b3a7b Feature A
* | 9a95133 Master B
|/
* 766c9b0 Master A
$ git log --oneline --graph --fir
我正在使用Mercurial进行版本控制。我试图忽略存储库中的zip文件,我的hgignore文件位于project的根目录中
我从你那里得到了下面的代码
但是这些对我不起作用
我也试过了
hg addremove
及
但这没用。您能告诉我如何正确忽略存储库中的zip文件吗?
谢谢你的帮助
编辑
我的问题是zip文件已经添加到存储库中。我先是忘了他们,犯了错误。现在它忽略了只需在中写入*.zip。hgignore就可以做到这一点。.hgignore中的模式没有根,因此*.zip将与zip存档匹
我有一个变更集,如果我有
hg diff filename -r rev1 -r rev2
我得到该文件更改的diff输出
如果我这样做
我收到一个消息框,上面写着“没有要查看的文件更改”
什么会导致他们不同意
编辑以响应注释,这里是第一个diff输出的通用版本
diff -r rev1 -r rev2 path_to_file
--- a/path_to_file DateTime
+++ b/path_to_file DateTime
@@ -52,13
我想得到一个特定文件的上一个版本,无论它是否在提示中更改
例如,我有一个回购协议,在变更集226有一个提示
$:~/sandbox$ hg log -r -3::.
changeset: 224:591c7a48b15f
user: blah <blah.com>
date: Tue May 28 09:07:25 2013 -0700
summary: TEST: test
changeset: 225:8c3689dedfa8
use
我在我的开发服务器上的mercurial上创建了一个名为“today”的标记。我想将测试服务器上的电子文件更新到标记级别“今天”。有人能告诉我怎么做吗
今天是不是会是hg pull origin(今天)你缺少一些基础知识hg pull永远不会更新本地文件(除非您使用-u但不这样做)。因此,首先需要在服务器上获取定义标记的变更集:
hg pull origin
这会覆盖所有变更集,但不会更新任何文件。然后,如果您希望服务器上的所有文件都与当前标记的文件相匹配,请执行以下操作:
hg update
是否有一种方法可以在使用TortoiseHg进行其他提交之后,在提交时在Mercurial中编辑提交消息?我读过这些帖子:
并且能够在分支上的最新提交时更新“常规”提交消息(使用TortoiseHg)。然而,我还没有弄清楚如何在我要编辑的提交消息之后发生其他提交时编辑提交消息。它总是编辑最后一次提交
根据Ed Cottrell的评论,我做了一个测试,在没有推送到中央回购的情况下进行了两次提交,我仍然有同样的问题——只有最后一次提交的消息可以编辑
编辑:我应该澄清,我正在寻找更新已推送的变更集
我在WindowsServer2008R2中使用mercurial keyring扩展和TortoiseHg(v2.11.164位)时遇到了一些无法解释的困难
扩展名似乎已启用(mercurial_keyring条目存在于mercurial.ini以及repo hgrc文件中),并且我已将默认repo URL设置为通过我的用户帐户(例如,default)=http://username@我的主机名/reponame/)。
我已经从命令提示符进行了手动推送,将我的密码存储在windows凭据存储中
假设我有两个项目
a) com.foo.bar
我有一个文件夹结构
com/foo/bar
com/foo/morebar
b) com.foo.morebar
文件夹结构为
com/foo/bar
com/foo/morebar
是否可以在顶层将(b)添加为(a)的子回购
我已经试过了
echo com/foo/morebar = com/foo/morebar > .hgsub
hg add .hgsub
hg clone http://myurl/moreBarRepo co
使用hg,如何在一次更改中替换目录的内容
更具体地说,我有一个标题,用于检查我的RePO中的一个大C++库,我想更新它们,包括添加和删除文件到最新版本的库。我希望在一次更改中做到这一点,而不是先删除旧版本,然后添加新版本,这将破坏测试并产生无用的差异。如果它们都更改了,则假设采用平面目录结构:
hg remove \path\to\directory\to\replace\*.h
copy \path\to\new\files\*.* \path\to\directory\to\replace\
如何让mercurial打印出我正在使用的存储库的完整路径?我正在寻找类似的东西,svn info提供了URL属性
hg paths
将输出当前工作副本的所有已配置远程存储库
将输出当前工作副本的所有已配置远程存储库
将输出当前工作副本的所有已配置远程存储库
将为当前工作副本输出所有配置的远程存储库。DVCS(Mercurial)和CVCS(Subversion)之间的根本区别是。。。第一个字母-对于分布式系统,您没有单一的权威来源
即Mercurial中不存在与SVN-URL直接相关的任何内
我想要一个命令行示例,介绍如何轻松地使用hglog,使用hg过滤器,并将其安全地输出到JSON(使用包含文件的数组)
多平台(windows/unix)会很好。编辑:这个答案适用于任何hg版本。对于较新的hg版本(3.1+),请参阅另一个性能更高、更简单的版本
下面是一个坚实的一行,作为一个例子
它使用Mercurialhg log,并将其输出通过管道传输到pythononeliner。hg log模板配置为输出有效的python文本。python的oneliner将其转换为JSON
hg lo
标签: Mercurial
tortoisehgbranching-and-merging
我有一个存储库,其中有两个分支MAIN和FEATURE1。分支后不久,我需要进行bug修复,然后用版本号标记MAIN。这些是在分支之后对MAIN的唯一更改。我一直在FEATURE1中工作,并添加了几个文件
1--2----4--5
\
3--------6--7--8
3-创建分支
4-错误修复
5-添加标签
6-8-功能更改
注意错误修复和功能之间有一个冲突的更改
现在,我的功能已经完成,我想将功能1(8)合并到主功能(5)中。但是当我执行合并时,我的任何更改似乎都没有
我正在做一个大项目,很多年前就开始了,随着时间的推移不断发展。
我将在我的新计算机上克隆它的存储库,但我希望避免导入整个历史,因为我不太可能在非常旧的版本上工作。
我希望避免复制与项目历史开始相关的所有数据
那么,是否有可能执行一种“惰性克隆”,即只克隆历史的最后一部分,比如说6个月,最终只在需要时获得缺失的部分?怎么做
谢谢 简单答案,否:-(这里已经讨论过了简单答案-是的,请参阅@Lazybagger指向的hg convert,它将为您提供一个全新的存储库(带有新的哈希),与原始存储库没有任
假设我想注释掉应用程序中的登录验证或硬编码密码,只是为了在开发时立即登录的个人便利
我不想提交此更改,我100%确定我不会因为其他原因修改源文件。
在git中,我将使用跳过工作树。我已经看到Mercurial提供了一个“秘密”阶段,但这对我来说是一个全新的概念。我是否可以将此作为“秘密”承诺,并确保它永远不会出现在官方回购协议中 “机密”阶段将整个变更集视为机密(从您的机密文件到tip的所有提交,以及所有后续提交)。所以您将无法将它们推送到公共服务器。在推送之前,您必须将它们重新设置为“非机密”
我做了一个必须在服务器上恢复的提交,因为它不工作。我做了“hg revert--all--rev 855”,并从我的Bitbucket和本地应用程序中删除了我的更改。当我执行“hg update”并尝试提取下一个更改时,我得到了“abort:crosss branchs(使用'hg merge'合并或使用'hg update-C'放弃更改)”
我如何才能继续进行所需的更改并丢失提交/头 您希望执行退出而不是恢复。首先,通过删除任何未提交的文件来清理工作目录:
hg revert -a
然后使用
我试图找出以下Mercurial命令是否等效(如果目录是已修改的文件,则在id-I输出中的附加+之外):hg id-I和hg log-l1--template“{node | short}”。是还是不是
其目的是潜在地加速一些自动化,而不需要执行id-i,而是在日志模板中使用{node | short}。它们看起来是等价的,但我更希望在我继续之前其他人也看一看。在某些条件下它们是等价的log-l 1将为您提供第一个修订hg id告诉您当前签出的内容。所以,如果您没有签出tip(假设您签出了一个分
我有一个存储库,我想在其中撤消分支上自最近一次提交以来的所有本地提交。我不想保存任何工作
在做了一些研究之后,我发现:
注意,我添加了--config“extensions.strip=“,因为我没有启用strip扩展
执行此命令后,它似乎已经知道我的远程用户名(它不在我的mercurial.ini中),并提示输入我的远程密码-然后它似乎完全按照我希望的方式运行
我的问题是,如果我的用户名没有存储在我的mercurial.ini中,它如何知道我的用户名?更重要的是,我如何将用户名和密码直接传递到
是否可以克隆Mercurial存储库的一部分?假设存储库相当大,或者包含多个项目或多个分支。我可以只克隆存储库的一部分吗
例如,在Subversion中,您可能有主干和分支。如果我只想获取主干(或其中一个分支),我可以请求[project]/trunk。如果我克隆hg回购,我将得到主干和所有分支。这可能是很多我不想要的信息。我可以避免得到这个吗
或者,如果我想在一个hg回购协议中有多个项目,我应该怎么做?也就是说,我可能只得到一个项目而忽略其他项目。Mercurial和Git只允许在整个存储库上
我正在学习mercurial,我去做了一些改变,我得到了“创建了新的头”的信息——尽管我可以发誓在做新工作之前我做了一次hg拉动和hg更新
然后我感到困惑,所以我做了一个合并,试图摆脱混乱。我正在处理的单个文件很好(同样,我在尝试学习HG时只使用了一个文件)。我无法发布我的图片(点数不够),但我尝试在下面重新创建它
当我创建标签seo_v_1.0时,我是否自动创建了一个分支?在其他hg回购中,我只需创建一个标签,推动更改并继续
有人能帮我破译一下我在这里做了什么吗?在合并之前,我对回购协议所做的
如何从mercurial中的另一个非默认分支(例如Y)创建分支
谢谢 您可以从任何修订创建分支,例如:
$ hg update -r 500 or $ hg clone --rev 500 // depends on what you want
$ hg branch newbranch
$ hg commit -m 'made a new branch from revision 500'
希望有帮助。您可以从任何修订版创建分支,例如:
$ hg update -r 500 or $ hg
考虑到我已经在Mercurial中创建了一个分支,我如何将该分支的合并结果推送到一个远程存储库,而不知道我是如何得到合并分支结果的。比如说
[a] - [b] -----------------[k]
\ /
[g] - [h] - [i] - [j]
[a] ,[b]和[k]为“默认”分支,[g]至[j]为特征分支。一旦我将功能分支合并到默认分支中,当我推送时,如何在远程存储库中只保留[a]-[b]-[k]更改集?我不想只是看不到
我使用的是TortoiseHgWorkbench 64位2.1.4,尽管这可能是Mercurial的一个问题。操作系统是Windows7(64位)
我有两个项目,我推到两个不同的位置(一个是bitbucket,另一个是私人项目)。他们使用不同的用户名和密码,我使用HTTPS
我已在mercurial.ini中设置了钥匙圈:
[extensions]
mercurial_keyring=
在这两个.hg/hgrc文件中,我有各自值的设置路径:
[paths]
default = https://
我有一个SVN回购协议,其结构如下:
/分支机构
/标签
/主干
/主干/模块1
/主干/模块2
/主干/模块3
我试图将其分为单独的Mercurial repo,其中每个新Mercurial repo保留该模块文件的修订历史。最终结果将是
/模块1 hg
/模块2 hg
/模数3汞柱
根据本指南(),
我试过使用
hg --config convert.svn.trunk=trunk/module1 convert https://repo.url/ module1-hg
但这会导致以下错误
标签: Mercurial
tortoisehgbugzillaissue-tracking
我有一个Bugzilla系统已经运行了一段时间,最近我开始使用TortoiseHG,我想使用Bugzilla扩展来更新注释
我已经按照Mercurial网站设置了它,但它没有发布到bug中
这是我正在使用的Mercurial.ini的副本
# Generated by TortoiseHg settings dialog
[tortoisehg]
ui.language = en_GB
[ui]
merge = kdiff3
[extensions]
hgext.bugzilla =
zero
我有三个Mercurial存储库repo,repoA和repoB。我希望发生以下事情
repoA中的一些编辑
提交至repoA
手动推送至repo
repo一旦收到来自repoA的提交,就会自动更新并推送到repoB
例如:
[hooks]
changegroup = hg up; hg push repoB
如果您在Windows上,钩子命令行将改为hg up&hg push repoB
(请注意,对于更复杂的内容,您可以只调用Bash/Cmd脚本而不是像这样的一个行程序)push可能会失败
我正在尝试将远程Ubuntu服务器上的repo克隆到本地Windows文件系统。以前从未这样做过。我有乌龟0.9.3。我右键单击并清空文件夹,然后在TortoiseHg弹出按钮中选择“克隆”。我输入ssh://myusername@mydomain.org/test作为源路径(即我的回购所在地),当前位置作为目标路径。然后我点击“克隆”
乌龟说:
running ""C:\Program Files\TortoiseHg\TortoisePlink.exe" -ssh -2
myuser@myd
我已将转换扩展名(无路径)添加到我的/home/user/.hgrc文件中,但它不起作用:
$ hg convert source_r56 source_r56_fixed --filemap exclude.filemap
hg: unknown command 'convert'
'convert' is provided by the following extension:
convert import revisions from foreign VCS repositor
我犯了创建数字要素分支名称的错误:
hg branch 123
现在,当我尝试更新到123时,hg将其视为修订号:
hg up 123
我的源代码不是更新到名为123的分支,而是更新到修订版123。有没有办法强迫HG UP命令考虑123作为分支而不是Rev。编号?您可以使用:hg update-r'branch(123)在分支语法之前键入撇号?如果我删除撇号,它是有效的,但不允许我编辑它以删除少于6个字符——也许OP可以?无论如何--accepted@LazyBadger-我能够运行-r分支
1 2 3 4 5 6 ...
下一页 最后一页 共 60 页