如何提交文件的许多编号旧版本

How to commit many numbered old versions of a file

我正在寻找一种优雅的方式来使用同一程序的不同版本填充 Mercurial,来自 50 个具有编号文件名的旧版本: prog1.py、prog2.py ... prog50.py 对于每个版本,我想保留日期和原始文件名,也许在更改注释中。

我是 Mercurial 的新手,搜索过但没有找到答案。

hg commit-d 指定日期和 -m 指定评论。

hg init
copy prog1.py prog.py /y
hg ci -A prog.py -d 1/1/2015 -m prog1.py
copy prog2.py prog.py /y
hg ci -A prog.py -d 1/2/2015 -m prog2.py
# repeat as needed

当然可以在一个小 bash 脚本中自动完成整个事情:

您通过stat -c %y ${FILENAME}获取文件的修改日期。因此假设文件是​​有序的:

hg init
for i in /path/to/old/versions/*.py do;
  cp $i .
  hg ci -d `stat -c %y $i` -m "Import $i"
done

请注意,文件名的自然排序是 prog1、prog11 prog12、... prog19、prog2、prog21、...。您可能希望将 prog1 重命名为 prog01 等以确保正常排序或在处理文件名之前对其进行排序,例如:

hg init
for i in `ls -tr /path/to/old/versions/*.py` do;
  cp /path/to/old/versions/$i .
  hg ci -d `stat -c %y /path/to/old/versions/$i` -m "Import $i"
done