Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法对mercurial中的修订进行重新排序?_Mercurial - Fatal编程技术网

有没有办法对mercurial中的修订进行重新排序?

有没有办法对mercurial中的修订进行重新排序?,mercurial,Mercurial,我想按年龄对存储库中的提交进行“重新排序”(完全出于可视化目的,我不想在功能上做任何更改)。“Rev”编号仅为方便起见,当前取决于提交何时被推入存储库。这意味着半小时前的提交比一个月前的提交要“早”,而且通过一个根本不会改变结构的简单方法,更容易显示何时完成了任务。这会使存储库保持完全相同,但会使存储库显示每次提交后都会立即推送每个更改集。有什么方法可以做到这一点吗?您可以使用它来帮助解决这个问题!特别是排序功能 这将返回tip(按本地变更集id)中的最后10个变更集,并返回按日期排序的变更集:

我想按年龄对存储库中的提交进行“重新排序”(完全出于可视化目的,我不想在功能上做任何更改)。“Rev”编号仅为方便起见,当前取决于提交何时被推入存储库。这意味着半小时前的提交比一个月前的提交要“早”,而且通过一个根本不会改变结构的简单方法,更容易显示何时完成了任务。这会使存储库保持完全相同,但会使存储库显示每次提交后都会立即推送每个更改集。有什么方法可以做到这一点吗?

您可以使用它来帮助解决这个问题!特别是
排序
功能

这将返回
tip
(按本地变更集id)中的最后10个变更集,并返回按日期排序的变更集:

hg log -r "sort(last(:tip, 10), date)"

查看
hg help convert
,尤其是使用
hg convert--datesort SOURCE DEST
。但是需要注意的是,与使用其他排序方法相比,生成的存储库可能非常庞大


请注意,通常不应在使用hgsubversion或hg git创建的存储库上使用
hg convert
,因为这样会丢失维护到原始存储库的链接所需的额外元数据。有可能重建元数据(我还没有尝试过)。

有人对这个问题投了赞成票,并提醒了我。我最终编写了以下批处理脚本(对不起,我在windows中,它应该很容易翻译成bash)


在最后一行中,两个
%1
都应该是
。\%1
REM clone_sorted.bat
REM usage: clone_sorted source destination
@echo off
echo "Cloning from %1 to %2"
hg clone -r 0 %1 %2
cd %2
@echo on
for /F %%h in ('hg log -R %1 -r "sort(1:tip, date)" --template "{rev}\n"') DO hg pull %1 -r %%h