1

$HG_NODE開始したいチェンジセットを参照しています:

[vcs@Quake /tmp/test/advanced]$ hg log -r $HG_NODE: --template '{node|short}:{files}\n'
c5eefea063fd:1.txt backup.cmd notes.txt
370f9ef91471:1.txt backup.cmd notes.txt
5eac12f79df6:advanced/Program.cs advanced/a advanced/b advanced/notes.txt lab6/scratch2/Fiobonacci.sln lab6/scratch2/Program.cs lab6/scratch2/xxx lab6/scratch2/yyy
4be96f43f327:advanced/1.txt
c724950dd2a6:advanced/Fiobonacci.csproj advanced/aaa.kuku

今、私はディレクトリも持っていますが、これは私にとって特に興味深いものです。したがって、このディレクトリ内のファイルに影響を与える最初の変更セットからすべての変更セットを取得したいと考えています。

まず、特定のファイルで取得できるかどうかを確認しようとしました。

[vcs@Quake /tmp/test/advanced]$ hg log -r "$HG_NODE: and file('path:advanced/1.txt')" --template '{node|short}\n'
4be96f43f327

次に、そのディレクトリ内のすべてのファイルに対して。しかし、私は何かが欠けているようです:

[vcs@Quake /tmp/test/advanced]$ hg log -r "$HG_NODE: and file('path:advanced/**')" --template '{node|short}\n'
[vcs@Quake /tmp/test/advanced]$ hg log -r "$HG_NODE: and file('set:advanced/**')" --template '{node|short}\n'
abort: fileset expression with no context
[vcs@Quake /tmp/test/advanced]$ hg log -r "$HG_NODE: and file('glob:advanced/**')" --template '{node|short}\n'
[vcs@Quake /tmp/test/advanced]$ hg log -r "$HG_NODE: and file('advanced/**')" --template '{node|short}\n'
[vcs@Quake /tmp/test/advanced]$ hg log -r "$HG_NODE: and file('re:^advanced/.*')" --template '{node|short}\n'
5eac12f79df6
4be96f43f327
c724950dd2a6

re:私にとってはプレフィックスのみが機能しますが、これglob:も同様に機能するはずです。

glob:とで動作させるにはどうすればよい**ですか?

4

1 に答える 1

1

advanced少し遊んだ後、すでにディレクトリにいるためだと思います。次のオプションのいずれかを試してください (これが事実であると仮定します)。

1) このディレクトリ内のファイルを照合することのみを指定します。

$ hg log -r "$HG_NODE: and file('glob:**')" --template '{node|short}\n'
5eac12f79df6
4be96f43f327
c724950dd2a6

2) 親ディレクトリに移動します。

$ cd ..
$ hg log -r "$HG_NODE: and file('glob:advanced/**')" --template '{node|short}\n'
5eac12f79df6
4be96f43f327
c724950dd2a6

3)pathオプションを使用しますが、以下を指定しないでください/**:

$ hg log -r "$HG_NODE: and file('path:advanced')" --template '{node|short}\n'
5eac12f79df6
4be96f43f327
c724950dd2a6

これらのオプションはすべて、私の小さなテスト リポジトリで機能するようです。

于 2012-12-20T16:10:27.467 に答える