这是一个非常简单和愚蠢的问题,
我正在处理 2 个任务并修改了代码中的 2 组文件。
现在,当我输入“hg ci”时,它会检查所有文件。我可以从 checkin 中删除某些文件,即只检查一项任务吗?
如果我删除“ checkin 消息”中的文件,它们会从 checkin 中删除
感谢所有的答案
这似乎是一个很大的缺陷,我的用例非常简单和通用。大部分时间开发人员都在处理各种任务,有些准备好了,有些还没有,错误修复等。
现在唯一的简单解决方案似乎是多个本地存储库或克隆
最佳答案
这对于开箱即用的 mercurial 是不可能的。正如所建议的,有几种方法可以选择要提交的文件。要通过提交消息模板获得此功能,您需要一个扩展或包装提交命令的 shell 脚本。这是一种方法:
[alias]
ci = ! hg-partial-commit
Mercurial 部分提交:
#!/bin/sh
# partial commit
edit=$(mktemp ${TMPDIR:-/tmp}/$(basename $0).XXXXXXXXXXXX)
filelist=$(mktemp ${TMPDIR:-/tmp}/$(basename $0).XXXXXXXXXXXX)
logmessage=$(mktemp ${TMPDIR:-/tmp}/$(basename $0).XXXXXXXXXXXX)
cleanup="rm -f '$edit' '$filelist' '$logmessage'"
trap "$cleanup" 0 1 2 3 15
(
echo user: $(hg debugconfig ui.username)
echo branch: $(hg branch)
hg parents --template 'parent: {rev}:{node|short} {author} {date|isodate}\n'
echo
echo 'Enter commit message. Select files to commit by deleting lines:'
hg status 'set:not unknown()' | sed -e 's/^/@/'
) | sed -e 's/^/HG: /' >"$edit"
${VISUAL:-${EDITOR:-vi}} "$edit"
egrep -v '^HG:' "$edit" >"$logmessage"
egrep '^HG: @' "$edit" | cut -c8- >"$filelist"
hg commit -l "$logmessage" "listfile:$filelist"
$cleanup
关于version-control - mercurial hg 部分 checkin ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16968953/