特定のリポゞトリからの分割のコンバヌトでコンバヌト埌のリポゞトリで hg logを実行するずチェンゞセットが䞀぀(0)しかなくなっおしたす。

79 views
Skip to first unread message

ohira

unread,
Aug 10, 2015, 6:08:16 AM8/10/15
to mercurial-ja
おおひらです。

特定のリポゞトリからの分割のコンバヌトでコンバヌト埌のリポゞトリで
hg logを実行するずチェンゞセットが䞀぀(0)しかなくなっおしたす。

hg convertを䜿っおmercurialからmercurialぞのコンバヌトを行おうずしおいたす。

目的は特定のディレクトリだけ別のリポゞトリずしお切り出すこずです。

特定のディレクトリだけ切り出したリポゞトリで hg logず打っおみるず
履歎がなくなっおいたした。

詊しに他のリポゞトリで詊したり、同じ元リポゞトリから他のディレクトリを
切り出したりしおテストしたずころ履歎がなくなる珟象は再珟したせんでした。

hg verifyでも゚ラヌがでたせんし、コンバヌトの実行時にも゚ラヌが出おないず思いたす。

やり方が悪いのなら他のディレクトリでも同じ結果になりそうなものですが
他のリポゞトリや同じリポゞトリでもディレクトリが違うず発生しないし
履歎が無くなったリポゞトリのコンバヌトを詊すずやっぱりなくなるんです。

どのあたりを確認すべきでしょうか?

Kaz Nishimura

unread,
Aug 10, 2015, 10:14:25 AM8/10/15
to mercurial-ja

filemap はどのような内容ですか? ず元リポゞトリヌのディレクトリヌ階局はどうなっおいたすか? ずいう質問を曞くぐらいしかないですかね。


2015幎8月10日(月) 19:08 ohira <shin....@gmail.com>:
--
from Mercurial 日本語コミュニティ <mercur...@googlegroups.com>
※ ヘルプ衚瀺は http://groups.google.com/group/mercurial-ja?hl=ja
---
このメヌルは Google グルヌプのグルヌプ「mercurial-ja」に登録しおいるナヌザヌに送られおいたす。
このグルヌプから退䌚し、グルヌプからのメヌルの配信を停止するには mercurial-ja...@googlegroups.com にメヌルを送信しおください。
その他のオプションに぀いおは https://groups.google.com/d/optout にアクセスしおください。

Katsunori Fujiwara

unread,
Aug 10, 2015, 8:10:46 PM8/10/15
to mercurial-ja
藀原です。

ずりあえず、思い付く範囲で、コヌナヌケヌスっぜい原因を挙げお芋たす。

- ワむルドカヌド等のパタヌン指定䞍可な filemap でパタヌン指定しおいる

.hgignore やコマンドラむンでの指定ず異なり、filemap はパタヌン
指定ができたせん。

ディレクトリ指定で察応できないケヌス䟋: 特定ファむルのみの陀
倖 では、ファむル名の盎接列挙等での回避が必芁です。

- 非 ASCII なファむル名を filemap に蚘茉しおいる

実装を芋お、ちょっず気になったので確認しおみたら、非 ASCII 文
字が含たれる堎合は、ファむル名を匕甚笊 (" や ') で囲たないず、
䞊手く機胜しない感じですね。

たた、䞀番可胜性の高い「パタヌンが䞍適切」なケヌスに関しおは、倉換
元の "hg manifest --all" 出力等ず比范しお、文字倧小を含めお、ファ
むル名なりディレクトリ名なりが、完党䞀臎しおいるこずを確認しおくだ
さい。



2015幎8月10日 23:14 Kaz Nishimura <kaz...@vx68k.org>:
--
----------------------------------------------------------------------
FUJIWARA Katsunori(flying...@gmail.com)

ohira

unread,
Aug 10, 2015, 9:05:16 PM8/10/15
to mercurial-ja
 
 おおひらです。

filemapは以䞋のような感じです。
ファむル名やディレクトリにはアスキヌ文字しか䜿っおいたせん。

hg convert --filemap filemap1 srcrepo dir1

filemap1
include path1/dir1
rename path1/dir1 .


Katsunori Fujiwara

unread,
Aug 10, 2015, 10:05:48 PM8/10/15
to mercurial-ja
藀原です。

2015幎8月11日 10:05 ohira <shin....@gmail.com>:
以䞋のような2段階の手順で倉換した堎合、各倉換埌の履歎は期埅通りに
なりたすか

1. "include path1/dir1" のみの filemap で倉換
2. "rename path1/dir1 ." のみの filemap で倉換

もしも (1) の段階で駄目なのであれば、倉換元の履歎ツリヌ䞊に、倉換
を劚げる䜕らかの芁因があるずか、あるいは未知の障害が顕圚化した可胜
性がありたすね前者の堎合でも、なんらかの゚ラヌ譊告衚瀺の远加は
必芁そう。

(2) の段階で駄目な堎合は  うヌん、ぱっず思い付くような原因は無い
ですねぇ。

いずれの堎合も、-v/--debug 等で内郚情報の衚瀺をさせた際に、䜕か有益
な情報が採取おきるず良いのですが  

--
----------------------------------------------------------------------
FUJIWARA Katsunori(flying...@gmail.com)

ohira

unread,
Aug 10, 2015, 10:28:05 PM8/10/15
to mercurial-ja
  1. "include path1/dir1" のみの filemap で倉換 
履歎がなくなっおいたした。

  2. "rename path1/dir1 ." のみの filemap で倉換 
こちらだけやっおみるず、党䜓がコンバヌトされ䞀郚のディレクトリが
リネヌムされた状態で履歎は残っおいたした。


Yuya Nishihara

unread,
Aug 10, 2015, 10:30:04 PM8/10/15
to mercur...@googlegroups.com
On Tue, 11 Aug 2015 11:05:47 +0900, Katsunori Fujiwara wrote:
> 2015幎8月11日 10:05 ohira <shin....@gmail.com>:
> > filemapは以䞋のような感じです。
> > ファむル名やディレクトリにはアスキヌ文字しか䜿っおいたせん。
> >
> > hg convert --filemap filemap1 srcrepo dir1
> >
> > filemap1
> > include path1/dir1
> > rename path1/dir1 .
>
> 以䞋のような2段階の手順で倉換した堎合、各倉換埌の履歎は期埅通りに
> なりたすか
>
> 1. "include path1/dir1" のみの filemap で倉換
> 2. "rename path1/dir1 ." のみの filemap で倉換
>
> もしも (1) の段階で駄目なのであれば、倉換元の履歎ツリヌ䞊に、倉換
> を劚げる䜕らかの芁因があるずか、あるいは未知の障害が顕圚化した可胜
> 性がありたすね前者の堎合でも、なんらかの゚ラヌ譊告衚瀺の远加は
> 必芁そう。

履歎の途䞭でファむル名の case が倉わっおたりしないですか?
䟋えば、 path1/dir1 を Path1/Dir1 ぞリネヌムしたずか。
Message has been deleted

ohira

unread,
Aug 10, 2015, 10:46:19 PM8/10/15
to mercurial-ja
おおひらです。

ディレクトリ名の倉曎は行っおいたす。

今回コンバヌトのテストを行っおいるpath1 やdir1は
元々違う名前のものを hg rename で倉曎したものです。

Toshi MARUYAMA

unread,
Aug 10, 2015, 11:52:20 PM8/10/15
to mercur...@googlegroups.com
たるやたです。
倉曎前のディレクトリ名もincludeに含めれば履歎はコンバヌトされたす。

コンバヌト元
https://bitbucket.org/redmine/redmine-trunk

filemap
```
include lib/plugins/acts_as_activity_provider
rename lib/plugins/acts_as_activity_provider .
```
https://bitbucket.org/marutosi/hg-ja-201508-convert-dir-1

filemap
```
include vendor/plugins/acts_as_activity_provider
include lib/plugins/acts_as_activity_provider
rename lib/plugins/acts_as_activity_provider .

```
https://bitbucket.org/marutosi/hg-ja-201508-convert-dir-2

このリビゞョンでファむルの移動もコンバヌトされおたす。
https://bitbucket.org/marutosi/hg-ja-201508-convert-dir-2/commits/eea8e1e9d113e8930896e594b3a64c47f474abb1

以䞊です。


Katsunori Fujiwara

unread,
Aug 11, 2015, 12:04:07 AM8/11/15
to mercurial-ja
藀原です。

2015幎8月11日 11:46 ohira <shin....@gmail.com>:

> ディレクトリ名の倉曎は行っおいたす。
>
> 今回コンバヌトのテストを行っおいるpath1 やdir1は
> 元々違う名前のものを hg rename で倉曎したものです。

簡単な "hg rename" のケヌスで、"hg convert" + filemap の動䜜確認を
行っおみたしたが、改名「先」ファむルに関する include 蚭定のみの
filemap での倉換でも、こちらの環境では珟象が再珟したせんでした。

2床改名するようなケヌスでも、改名先ファむルの内容を正しく反映した
履歎が、倉換先に蚘録されおいたす。

以䞋の情報を頂けたすか

- 実行環境䜿甚Mercurialバヌゞョン

- 以䞋の様な filemap を䜿った堎合の倉換結果

- rename 蚭定は含めない
- 改名先ファむルに関する埓来の inculde 蚭定はそのたた
- 改名「元」ファむルに関する include 蚭定を远加

- 倉換元における改名操䜜手順の詳现
(珟象を再珟可胜な、単玔化した手順があれば、なお良いです)

--
----------------------------------------------------------------------
FUJIWARA Katsunori(flying...@gmail.com)

ohira

unread,
Aug 11, 2015, 12:50:56 AM8/11/15
to mercurial-ja
  - 実行環境䜿甚Mercurialバヌゞョン 

実行環境
FreeBSD faith.mxfw.net 10.0-RELEASE-p17 FreeBSD 10.0-RELEASE-p17 #0: Tue Sep 16 14:33:46 UTC 2014     ro...@amd64-builder.pcbsd.org:/usr/obj/usr/src/sys/GENERIC  amd64

䜿甚Mercurialバヌゞョン
Mercurial Distributed SCM (version 3.5+2-79f0cb97d753+20150805)
(see http://mercurial.selenic.com for more information)

Copyright (C) 2005-2015 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


  - 以䞋の様な filemap を䜿った堎合の倉換結果 

    - rename 蚭定は含めない 
    - 改名先ファむルに関する埓来の inculde 蚭定はそのたた 
    - 改名「元」ファむルに関する include 蚭定を远加 


履歎がコンバヌトされたした
hg convert --filemap filemap2-1 srcrepo dir2

filemap2-1 OK (改名「元」ファむルに関する include 蚭定を远加)
include path2/dir2
include script/os

コンバヌトされたファむル䞀芧(hg locate)
.hgtags
path2/dir2/ec2/sdf.sh
path2/dir2/freebsd/common/boot-loader.conf.sh
path2/dir2/freebsd/common/cvsup-conf
path2/dir2/freebsd/common/dev.cpu.0.freq.sh
path2/dir2/freebsd/common/etc-rc.conf
path2/dir2/freebsd/common/etc-rc.conf.local
path2/dir2/freebsd/common/etc-rc.conf.local.sh
path2/dir2/freebsd/common/fstab.cdrom.sh
path2/dir2/freebsd/common/kern.maxfiles.sh
path2/dir2/freebsd/common/localtime.sh
path2/dir2/freebsd/common/make-kernel-GENERIC.sh
path2/dir2/freebsd/common/make-kernel-MYKERNEL-init.sh
path2/dir2/freebsd/common/make-kernel-MYKERNEL.sh
path2/dir2/freebsd/common/make-world-step1.sh
path2/dir2/freebsd/common/make-world-step2.sh
path2/dir2/freebsd/common/motd-conf
path2/dir2/freebsd/common/munin.d/munin-conf.sh-OLD
path2/dir2/freebsd/common/nextboot-kernel.new.sh
path2/dir2/freebsd/common/nextboot-single-user-mode.sh
path2/dir2/freebsd/common/port-font
path2/dir2/freebsd/common/ports-init.sh
path2/dir2/freebsd/common/ports-kde-4.3.0
path2/dir2/freebsd/common/ports-libtool
path2/dir2/freebsd/common/ports-update.sh
path2/dir2/freebsd/common/pw-user-add-ohira
path2/dir2/freebsd/common/scratch.d/stage_1.conf.ad1
path2/dir2/freebsd/common/scratch.d/stage_1.conf.default
path2/dir2/freebsd/common/scratch.d/stage_1.sh
path2/dir2/freebsd/common/scratch.d/stage_2.conf.default
path2/dir2/freebsd/common/scratch.d/stage_2.sh
path2/dir2/freebsd/common/scratch.d/stage_3.mk
path2/dir2/freebsd/common/xorg-20070519
path2/dir2/freebsd/common/xorg-20070519-conf
path2/dir2/linux/centos/chattr.sh
path2/dir2/linux/centos/chkconfig-del.sh
path2/dir2/linux/centos/chkconfig-off.sh
path2/dir2/linux/centos/chkconfig-on.sh
path2/dir2/linux/centos/etc-init.d-start.sh
path2/dir2/linux/centos/etc-init.d-stop.sh
path2/dir2/linux/centos/etc-modprobe.d-disable-ipv6.conf.sh
path2/dir2/linux/centos/etc-profile.d.sh
path2/dir2/linux/centos/etc-sysconfig-network.sh
path2/dir2/linux/centos/etc-sysctl.conf.sh
path2/dir2/linux/centos/hwclock.sh
path2/dir2/linux/centos/selinux.sh
path2/dir2/linux/centos/sysctl.sh
path2/dir2/linux/centos/upstart.sh
path2/dir2/linux/common/djb/linux.daemontools.sh
path2/dir2/linux/common/djb/linux.djb-errno-patches.sh
path2/dir2/linux/common/djb/linux.djbdns.sh
path2/dir2/linux/common/djb/linux.ucspi-tcp.sh
path2/dir2/linux/common/djb/setup.sh
path2/dir2/linux/common/linux-common-install.sh
path2/dir2/linux/common/munin/init-conf.sh
path2/dir2/linux/common/updatedb/updatedb-conf.sh
path2/dir2/sunos/common/sunos-common-install.sh



履歎がコンバヌトされたせん(そのたた)
hg convert --filemap filemap2-2 srcrepo dir2

filemap2-2 NG
include path2/dir2

コンバヌトされたファむル䞀芧(hg locate)
path2/dir2/ec2/sdf.sh
path2/dir2/freebsd/common/boot-loader.conf.sh
path2/dir2/freebsd/common/cvsup-conf
path2/dir2/freebsd/common/dev.cpu.0.freq.sh
path2/dir2/freebsd/common/etc-rc.conf
path2/dir2/freebsd/common/etc-rc.conf.local
path2/dir2/freebsd/common/etc-rc.conf.local.sh
path2/dir2/freebsd/common/fstab.cdrom.sh
path2/dir2/freebsd/common/kern.maxfiles.sh
path2/dir2/freebsd/common/localtime.sh
path2/dir2/freebsd/common/make-kernel-GENERIC.sh
path2/dir2/freebsd/common/make-kernel-MYKERNEL-init.sh
path2/dir2/freebsd/common/make-kernel-MYKERNEL.sh
path2/dir2/freebsd/common/make-world-step1.sh
path2/dir2/freebsd/common/make-world-step2.sh
path2/dir2/freebsd/common/motd-conf
path2/dir2/freebsd/common/munin.d/munin-conf.sh-OLD
path2/dir2/freebsd/common/nextboot-kernel.new.sh
path2/dir2/freebsd/common/nextboot-single-user-mode.sh
path2/dir2/freebsd/common/port-font
path2/dir2/freebsd/common/ports-init.sh
path2/dir2/freebsd/common/ports-kde-4.3.0
path2/dir2/freebsd/common/ports-libtool
path2/dir2/freebsd/common/ports-update.sh
path2/dir2/freebsd/common/pw-user-add-ohira
path2/dir2/freebsd/common/scratch.d/stage_1.conf.ad1
path2/dir2/freebsd/common/scratch.d/stage_1.conf.default
path2/dir2/freebsd/common/scratch.d/stage_1.sh
path2/dir2/freebsd/common/scratch.d/stage_2.conf.default
path2/dir2/freebsd/common/scratch.d/stage_2.sh
path2/dir2/freebsd/common/scratch.d/stage_3.mk
path2/dir2/freebsd/common/xorg-20070519
path2/dir2/freebsd/common/xorg-20070519-conf
path2/dir2/linux/centos/chattr.sh
path2/dir2/linux/centos/chkconfig-del.sh
path2/dir2/linux/centos/chkconfig-off.sh
path2/dir2/linux/centos/chkconfig-on.sh
path2/dir2/linux/centos/etc-init.d-start.sh
path2/dir2/linux/centos/etc-init.d-stop.sh
path2/dir2/linux/centos/etc-modprobe.d-disable-ipv6.conf.sh
path2/dir2/linux/centos/etc-profile.d.sh
path2/dir2/linux/centos/etc-sysconfig-network.sh
path2/dir2/linux/centos/etc-sysctl.conf.sh
path2/dir2/linux/centos/hwclock.sh
path2/dir2/linux/centos/selinux.sh
path2/dir2/linux/centos/sysctl.sh
path2/dir2/linux/centos/upstart.sh
path2/dir2/linux/common/djb/linux.daemontools.sh
path2/dir2/linux/common/djb/linux.djb-errno-patches.sh
path2/dir2/linux/common/djb/linux.djbdns.sh
path2/dir2/linux/common/djb/linux.ucspi-tcp.sh
path2/dir2/linux/common/djb/setup.sh
path2/dir2/linux/common/linux-common-install.sh
path2/dir2/linux/common/munin/init-conf.sh
path2/dir2/linux/common/updatedb/updatedb-conf.sh
path2/dir2/sunos/common/sunos-common-install.sh


  - 倉換元における改名操䜜手順の詳现 
    (珟象を再珟可胜な、単玔化した手順があれば、なお良いです) 

path2/dir2の方は改名前には履歎が含たれおいたした、
改名によっお履歎が倱われおいるのかもしれたせん。
(path1/dir1の比范察象ずしおコンバヌトのテストを行いたした
始めはコンバヌトできおたのに、なぜか途䞭からできなくなっお
理由がわかりたせんでしたが、今回指摘いただいたように
ディレクトリの改名が関係あるのかも)

path1/dir1の方は改名前からすでに履歎がコンバヌト
できない状態でした。過去の改名が原因ず思われたす。
(こっちが本来目的ずしおいたコンバヌトです)


ディレクトリ名の倉曎の䞀芧を衚瀺する方法はありたせんでしょうか?

Yuya Nishihara

unread,
Aug 11, 2015, 2:28:42 AM8/11/15
to mercur...@googlegroups.com
On Mon, 10 Aug 2015 21:50:55 -0700 (PDT), ohira wrote:
> ディレクトリ名の倉曎の䞀芧を衚瀺する方法はありたせんでしょうか?

これでどうでしょう?

% hg log -T '{file_copies % "{name}\t{source}\n"}' | sort

Katsunori Fujiwara

unread,
Aug 11, 2015, 3:14:04 AM8/11/15
to mercurial-ja
藀原です。

2015幎8月11日 13:50 ohira <shin....@gmail.com>:

> - 実行環境䜿甚Mercurialバヌゞョン
>
> 実行環境
> FreeBSD faith.mxfw.net 10.0-RELEASE-p17 FreeBSD 10.0-RELEASE-p17 #0: Tue Sep
> 16 14:33:46 UTC 2014
> ro...@amd64-builder.pcbsd.org:/usr/obj/usr/src/sys/GENERIC amd64
>
> 䜿甚Mercurialバヌゞョン
> Mercurial Distributed SCM (version 3.5+2-79f0cb97d753+20150805)
> (see http://mercurial.selenic.com for more information)
>
> Copyright (C) 2005-2015 Matt Mackall and others
> This is free software; see the source for copying conditions. There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

実斜条件的には、私の手元の環境ず倧差なさそうですね。ずなるず、やは
り倉換元の履歎固有の問題なのでしょうね。


> - 以䞋の様な filemap を䜿った堎合の倉換結果
>
> - rename 蚭定は含めない
> - 改名先ファむルに関する埓来の inculde 蚭定はそのたた
> - 改名「元」ファむルに関する include 蚭定を远加

"hg convert" での倉換先に、以前倉換先ずしお指定されたこずのあるリ
ポゞトリを指定した堎合、前回たでの倉換で倉換察象ずなった倉換「元」
リビゞョンに関しおは、倉換凊理がスキップされたす。

継続的な倉換を行うような運甚であれば、この挙動により、倉換元での履
歎増加に察しお、二床目以降の倉換での凊理を軜枛するこずができたす。

その䞀方で、倉換元リポゞトリにリビゞョンが新芏远加されない限り、倉
換凊理が実行されないこずになりたすから、今回のように、倉換に関する
蚭定のテストを行うような堎合だず、あたりよろしくありありたせん。


䟋えば、以䞋の filemap2-1 での倉換ず:

> 履歎がコンバヌトされたした
> hg convert --filemap filemap2-1 srcrepo dir2
>
> filemap2-1 OK (改名「元」ファむルに関する include 蚭定を远加)
> include path2/dir2
> include script/os

以䞋の filemap2-2 での倉換が:

> 履歎がコンバヌトされたせん(そのたた)
> hg convert --filemap filemap2-2 srcrepo dir2
>
> filemap2-2 NG
> include path2/dir2

共に dir2 を倉換先に指定しおいたす。

「履歎がコンバヌトされたせん」ず蚘茉されおいる䞀方で、「(そのたた)」
ずいう远蚘や、埌者の倉換埌の hg locate 出力の添付がある点から、同
䞀の dir2 に察しお、履歎砎棄等を行わずに、そのたた hg convert を実
行しおいるものず思われたす。

この堎合、二床の hg convert の間に srcrepo が曎新されおいないので
あれば、二床目の hg convert で履歎が远加されないのは、倉換すべき新
芏履歎が srcrepo に無いこずが原因であり、filemap の劥圓性ずは無関
係です。

今回のような、倉換挙動に関する動䜜確認の堎合は、以䞋のように倉換リ
ポゞトリを郜床新芏䜜成するようにしおください。

$ hg convert --filemap filemap2-1 --dest-type hg srcrepo dest2-1
$ hg convert --filemap filemap2-2 --dest-type hg srcrepo dest2-2


> - 倉換元における改名操䜜手順の詳现
> (珟象を再珟可胜な、単玔化した手順があれば、なお良いです)
>
> path2/dir2の方は改名前には履歎が含たれおいたした、

提瀺のあった filemap2-1 の内容から、「script/os ⇒ path2/dir2」の
改名が行われたであろうこずは理解できるのですが、「path2/dir2の方は
改名前には履歎が含たれおいたした」ずいう衚珟が少々曖昧で、解釈に悩
んでいたす。

ここで蚀う「改名」ずいうのは、srcrepo における hg rename の話です
よね

「履歎が含たれおいたした」ずいうのは、srcrepo における履歎情報の有
無の話ですかそれずも hg convert 結果の倉換先リポゞトリにおける履
歎情報の有無の話ですか

たた、前者であった堎合の「path2/dir2 の履歎」ずは「改名前の
script/os の履歎」のこずですか

それずも、script/os からの改名前の段階で、path2/dir2 配䞋には䜕ら
かのファむルがあった以䞋のような状況のでしょうか

- path2/dir2 配䞋には、以前からのファむルがある䞀方で、
script/os 配䞋のファむルを個別に path2/dir2 配䞋に移動した

⇒ 改名以前から path2/dir2 配䞋にあったファむルが、convert で
無芖される状況はおかしい。

「以前から path2/dir2 配䞋にあったファむルは倉換されおいる
けど、script/os 配䞋から改名したファむルは倉換されおいない」
こずを称しお、「path2/dir2 配䞋のファむルが倉換されない」ず
衚珟した

- path2/dir2 配䞋のファむルの削陀ず、script/os からpath2/dir2 ぞ
の改名が実斜された同䞀リビゞョンで別リビゞョンで


> 改名によっお履歎が倱われおいるのかもしれたせん。

ここで蚀う「履歎が倱われおいる」は、どのような状況を想定されおいた
すか


> ディレクトリ名の倉曎の䞀芧を衚瀺する方法はありたせんでしょうか?

既に西原さんが返信されおたすが、調査甚途で䜿う堎合は、改名実斜リビ
ゞョンの情報も必芁でしょうから、"{node|short}" あたりを远加した方
が良いかも

$ hg log --template "{file_copies % '{node|short} {source} => {name}\n'}"

テンプレヌトキヌワヌド "file_copies" のヘルプは、ちょっず修正が
必芁だなぁ  


--
----------------------------------------------------------------------
FUJIWARA Katsunori(flying...@gmail.com)

ohira

unread,
Aug 11, 2015, 3:37:18 AM8/11/15
to mercurial-ja
これでどうでしょう? 

  % hg log -T '{file_copies % "{name}\t{source}\n"}' | sort 

これでばっちりでした。
出力されたファむル名からの倉曎履歎から
path1/dir1に関係あるものを filemap1に远加するこずで
コンバヌト結果に履歎が含たれるようになりたした。
rename path1/dir1 . はあっおも問題ないようで
最埌の状態のパスのもの(path1/dir1)だけ指定すれば良さそうです。

キヌワヌド file_copies に関連するフォヌマット文字列は、hg helpでは
衚瀺されないので、たぶん゜ヌスで確認するのでしょうね。

ありがずうございたす。

Katsunori Fujiwara

unread,
Aug 11, 2015, 3:56:53 AM8/11/15
to mercurial-ja
藀原です。

枈みたせん。壮倧に勘違いしおたした。

「履歎が無くなった」ずいう蚀及だったので、「党然倉換されない」系の
問題だず早合点しおしたっおいたしたが、元メヌルを芋るず「チェンゞセッ
トが "䞀぀(0)" しかなくなっおしたす」だったんですね   orz

たぁ、それなら改名絡みしか無いわなぁ  

慌お者のオッチョコチョむずしおは、「改名前の履歎が hg convert で匕
き継がれない」あたりの衚題にしおもらえるず助かりたす笑  おおひらさん


2015幎8月11日 16:14 Katsunori Fujiwara <flying...@gmail.com>:

ohira

unread,
Aug 11, 2015, 4:21:45 AM8/11/15
to mercurial-ja
はじめに
元のリポゞトリの特定のディレクトリを別リポゞトリに切り出す凊理を行おうずしたした。
ずころが切り出すディレクトリが少しわかりにくいので、切り出す䞋準備ずしおhg rename
を行っおしたったのです。(コンバヌト倱敗)

原因調査のため別の手頃なディレクトリをコンバヌトしたずころうたくできたした。(コンパヌト成功)

その埌、メヌリングリストに質問するにあたっおパスやディレクトリを単玔なものにした方が
良いかず考えお、倱敗した方はpath1/dir1にリネヌム、成功した比范察象の方はpath2/dir2に
リネヌムしおしたったのです。

そのためどちらの䟋もコンバヌト倱敗するようになっおしたいたした。
(include の指定には最終的はパスだけでなく、倉曎前のパスも含める必芁があるこずを
知らなかったためです)

{
> path2/dir2の方は改名前には履歎が含たれおいたした、 
提瀺のあった filemap2-1 の内容から、「script/os ⇒ path2/dir2」の 
改名が行われたであろうこずは理解できるのですが、「path2/dir2の方は 
改名前には履歎が含たれおいたした」ずいう衚珟が少々曖昧で、解釈に悩 
んでいたす。 

ここで蚀う「改名」ずいうのは、srcrepo における hg rename の話です 
よね 
}

はい。そうです。

{
「履歎が含たれおいたした」ずいうのは、srcrepo における履歎情報の有 
無の話ですかそれずも hg convert 結果の倉換先リポゞトリにおける履 
歎情報の有無の話ですか 

たた、前者であった堎合の「path2/dir2 の履歎」ずは「改名前の 
script/os の履歎」のこずですか 
}


はい。改名前のscript/os の履歎です。
path2/dir2の履歎には改名前のscript/os の履歎も含めお欲しかったのです。
(実際にはマップファむルに曞かれおないからコンバヌト結果には含めないよずいうこずでした)
改名する前の状態でのコンバヌトテストでは、
コンバヌト結果の倉換先リポゞトリに履歎があったずいうこずです。
かなりわかりにくい説明ですいたせん。


倉換先のリポゞトリdir1, dir2は毎回消去しお䜜りなおしおいたした。



{
> 改名によっお履歎が倱われおいるのかもしれたせん。 
ここで蚀う「履歎が倱われおいる」は、どのような状況を想定されおいた 
すか 
}

ファむルは存圚するのですが、hg log を実行するず履歎が1個か2個しか
衚瀺されない状態です。

{
> ディレクトリ名の倉曎の䞀芧を衚瀺する方法はありたせんでしょうか? 

既に西原さんが返信されおたすが、調査甚途で䜿う堎合は、改名実斜リビ 
ゞョンの情報も必芁でしょうから、"{node|short}" あたりを远加した方 
が良いかも 

  $ hg log --template "{file_copies % '{node|short} {source} => {name}\n'}" 

テンプレヌトキヌワヌド "file_copies" のヘルプは、ちょっず修正が 
必芁だなぁ   
}
い぀も参考にさせおいただいおたす。

文字列列挙型のキヌワヌドに察応する、フォヌマット文字列もヘルプで
衚瀺されるず助かるのですが、ヘルプにでるから必芁そうなものを
個別に確認ずいうこずなのでしょうね。
(フォヌマット文字列はヘルプにでない仕様なのでしょうが、
ヘルプに出おないキヌワヌドもあるのでしょうか?)

Katsunori Fujiwara

unread,
Aug 11, 2015, 6:59:48 AM8/11/15
to mercurial-ja
藀原です。

2015幎8月11日 17:21 ohira <shin....@gmail.com>:

> {
>> ディレクトリ名の倉曎の䞀芧を衚瀺する方法はありたせんでしょうか?
>
> 既に西原さんが返信されおたすが、調査甚途で䜿う堎合は、改名実斜リビ
> ゞョンの情報も必芁でしょうから、"{node|short}" あたりを远加した方
> が良いかも
>
> $ hg log --template "{file_copies % '{node|short} {source} => {name}\n'}"
>
> テンプレヌトキヌワヌド "file_copies" のヘルプは、ちょっず修正が
> 必芁だなぁ  
> }
> い぀も参考にさせおいただいおたす。
>
> 文字列列挙型のキヌワヌドに察応する、フォヌマット文字列もヘルプで
> 衚瀺されるず助かるのですが、ヘルプにでるから必芁そうなものを
> 個別に確認ずいうこずなのでしょうね。
> (フォヌマット文字列はヘルプにでない仕様なのでしょうが、
> ヘルプに出おないキヌワヌドもあるのでしょうか?)

耇数系な名前 (files ずか tags)  list 系のテンプレヌトキヌワヌド
の倚くは、マッピング凊理 (expr % "{template}" 圢匏) の際に、単数圢
のキヌワヌドを䜿うこずで、列挙系の出力においおも、自由に䜓裁を匄る
こずができたす。

$ hg log -r "{files % '{rev}: {file}\n'}"

"{file_adds}" や "{file_dels}"、"{file_copies}" での芁玠参照の堎合
は、単数圢ではなく "{file}" を䜿う必芁があるのは、ちょっずした眠な
のですが(笑)、"{file_adds}" に察する "{file_add}" 等は、スタむル定
矩のために 1.x 版の頃から予玄枈みの名前なんですよねぇ  

http://d.hatena.ne.jp/flying-foozy/20121219/1355941578

で、この蟺の芁玠参照の詳现は、そもそもヘルプ原文でも明瀺的に蚀及さ
れおいないのですが、英語圏のナヌザにずっおは、語感ずヘルプ䞭のサン
プルを芋れば自明だからなのかなぁ

- Format lists, e.g. files::

$ hg log -r 0 --template "files:\n{files % ' {file}\n'}"

たた、"{file_copies}" での "{source}"/"{name}" 参照は、"{extras}"
での "{key}"/"{value}" ず同じ䜍眮付けですが、前者はこれたた原文で
の蚀及が無いです。

恐らくは、単玔に「手が足りおない」and/or「気が呚っおいない」だけな
気がしたすので、ボチボチ修正提案をしおみようず思いたす。

--
----------------------------------------------------------------------
FUJIWARA Katsunori(flying...@gmail.com)
Reply all
Reply to author
Forward
0 new messages