[PATCH] convert: Make P4 conversion cope with keywords, binary files and symbolic links
Patrick Mézard
pmezard at gmail.com
Mon Apr 13 14:48:37 UTC 2009
Frank A. Kingswood a écrit :
> Frank Kingswood wrote:
>> # HG changeset patch
>> # User Frank Kingswood <frank at kingswood-consulting.co.uk>
>> # Date 1238842989 -3600
>> # Node ID 0670df1e3f5de0b3dc35cb853ad203a6ac2206a4
>> # Parent f5d4f59a9996ea0a4e7571f0a30596e4917a70ed
>> convert: Make P4 conversion cope with keywords, binary files and symbolic links.
>> Now handles errors from p4 during conversion more gracefully.
>> If keyword expansion is enabled in a P4 file then keywords will be unexpanded in hg.
>> Added testcase for p4 filetypes and keyword (un)expansion.
>> Set executable bit on test-convert-p4.
I have attached the log for test-convert-p4-filetypes on MacOSX. Here is the annotated inline diff:
> --- test-convert-p4-filetypes.out 2009-04-13 16:19:02.000000000 +0200
> +++ test-convert-p4-filetypes.err 2009-04-13 16:31:09.000000000 +0200
> @@ -61,13 +61,13 @@
> add //depot/test-mercurial-import/file_text+C#1
> add //depot/test-mercurial-import/file_text+D#1
> add //depot/test-mercurial-import/file_text+F#1
> -add //depot/test-mercurial-import/file_text+S#1
> -add //depot/test-mercurial-import/file_text+S2#1
> add //depot/test-mercurial-import/file_text+k#1
> add //depot/test-mercurial-import/file_text+ko#1
> add //depot/test-mercurial-import/file_text+kx#1
> add //depot/test-mercurial-import/file_text+l#1
> add //depot/test-mercurial-import/file_text+m#1
> +add //depot/test-mercurial-import/file_text+S#1
> +add //depot/test-mercurial-import/file_text+S2#1
> add //depot/test-mercurial-import/file_text+w#1
> add //depot/test-mercurial-import/file_text+x#1
> add //depot/test-mercurial-import/file_ubinary#1
> @@ -153,13 +153,13 @@
> edit //depot/test-mercurial-import/file_text+C#2
> edit //depot/test-mercurial-import/file_text+D#2
> edit //depot/test-mercurial-import/file_text+F#2
> -edit //depot/test-mercurial-import/file_text+S#2
> -edit //depot/test-mercurial-import/file_text+S2#2
> edit //depot/test-mercurial-import/file_text+k#2
> edit //depot/test-mercurial-import/file_text+ko#2
> edit //depot/test-mercurial-import/file_text+kx#2
> edit //depot/test-mercurial-import/file_text+l#2
> edit //depot/test-mercurial-import/file_text+m#2
> +edit //depot/test-mercurial-import/file_text+S#2
> +edit //depot/test-mercurial-import/file_text+S2#2
> edit //depot/test-mercurial-import/file_text+w#2
> edit //depot/test-mercurial-import/file_text+x#2
> edit //depot/test-mercurial-import/file_ubinary#2
They come from FS case-insensitivity and can be fixed by appending a $T2 instead of $T where
T2=`echo $T | tr [:upper:] [:lower:]`
> @@ -273,18 +273,22 @@
> converting...
> 1 initial
> 0 keywords
> -rev=1 desc="keywords" tags="tip" files="crazy_symlink+k file_binary file_binary+k file_binary+kx file_binary+x file_ctext file_cxtext file_ktext file_kxtext file_ltext file_resource file_text file_text+C file_text+D file_text+F file_text+S file_text+S2 file_text+k file_text+ko file_text+kx file_text+l file_text+m file_text+w file_text+x file_ubinary file_unicode file_uresource file_utf16 file_uxbinary file_xbinary file_xltext file_xtext file_xunicode file_xutf16 target_symlink target_symlink+k"
> +rev=1 desc="keywords" tags="tip" files="crazy_symlink+k file_binary file_binary+k file_binary+kx file_binary+x file_ctext file_cxtext file_ktext file_kxtext file_ltext file_text file_text+C file_text+D file_text+F file_text+S file_text+S2 file_text+k file_text+ko file_text+kx file_text+l file_text+m file_text+w file_text+x file_ubinary file_unicode file_utf16 file_uxbinary file_xbinary file_xltext file_xtext file_xunicode file_xutf16 target_symlink target_symlink+k"
file_resource and file_uresource are missing on macosx, I don't know why
> rev=0 desc="initial" tags="" files="file_binary file_binary+k file_binary+kx file_binary+x file_ctext file_cxtext file_ktext file_kxtext file_ltext file_resource file_symlink file_symlink+k file_text file_text+C file_text+D file_text+F file_text+S2 file_text+k file_text+ko file_text+kx file_text+l file_text+m file_text+w file_text+x file_ubinary file_unicode file_uresource file_utf16 file_uxbinary file_xbinary file_xltext file_xtext file_xunicode file_xutf16 target_symlink target_symlink+k"
I think grep -H is a GNU extension, can we avoid it ?
> % revision 0
> 36 files updated, 0 files merged, 0 files removed, 0 files unresolved
> ==> dst/file_binary <==
> -this is binary
> +-n this is binary
> +
I cannot explain this.
> ==> dst/file_binary+k <==
> -this is binary+k
> +-n this is binary+k
> +
> ==> dst/file_binary+kx <==
> -this is binary+kx
> +-n this is binary+kx
> +
> ==> dst/file_binary+x <==
> -this is binary+x
> +-n this is binary+x
> +
> ==> dst/file_ctext <==
> this is ctext
>
> @@ -301,8 +305,7 @@
> this is ltext
>
> ==> dst/file_resource <==
> -this is resource
> -
> +^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
> ==> dst/file_symlink <==
> this is target symlink
>
> @@ -352,8 +355,7 @@
> this is unicode
>
> ==> dst/file_uresource <==
> -this is uresource
> -
> +^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
> ==> dst/file_utf16 <==
> M-fM-!M-4M-gM-^MM-)M-fM-$M- M-bM-^AM-3M-gM-^QM-5M-cM-^EM-&M-`M-(M-6
> ==> dst/file_uxbinary <==
> @@ -374,9 +376,10 @@
> ==> dst/file_xutf16 <==
> M-fM-!M-4M-gM-^MM-)M-fM-$M- M-bM-^AM-3M-gM-^UM-8M-fM-^YM-4M-cM-^XM-1
> % revision 1
> -36 files updated, 0 files merged, 0 files removed, 0 files unresolved
> +34 files updated, 0 files merged, 0 files removed, 0 files unresolved
> ==> dst/file_binary <==
> -this is binary$Id$
> +-n this is binary
> +$Id$
> $Header$
> $Date$
> $DateTime$
> @@ -386,7 +389,8 @@
> $Header$$Header$Header$
>
> ==> dst/file_binary+k <==
> -this is binary+k$Id$
> +-n this is binary+k
> +$Id$
> $Header$
> $Date$
> $DateTime$
> @@ -396,7 +400,8 @@
> $Header$$Header$Header$
>
> ==> dst/file_binary+kx <==
> -this is binary+kx$Id$
> +-n this is binary+kx
> +$Id$
> $Header$
> $Date$
> $DateTime$
> @@ -406,7 +411,8 @@
> $Header$$Header$Header$
>
> ==> dst/file_binary+x <==
> -this is binary+x$Id$
> +-n this is binary+x
> +$Id$
> $Header$
> $Date$
> $DateTime$
> @@ -471,16 +477,7 @@
> $Header$$Header$Header$
>
> ==> dst/file_resource <==
> -this is resource
> -$Id$
> -$Header$
> -$Date$
> -$DateTime$
> -$Change$
> -$File$
> -$Revision$
> -$Header$$Header$Header$
> -
> +^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
> ==> dst/file_symlink <==
> this is target symlink
> $Id$
> @@ -669,16 +666,7 @@
> $Header$$Header$Header$
>
> ==> dst/file_uresource <==
> -this is uresource
> -$Id$
> -$Header$
> -$Date$
> -$DateTime$
> -$Change$
> -$File$
> -$Revision$
> -$Header$$Header$Header$
> -
> +^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
> ==> dst/file_utf16 <==
> M-fM-!M-4M-gM-^MM-)M-fM-$M- M-bM-^AM-3M-gM-^QM-5M-cM-^EM-&M-`M-(M-6M-dM-$M-$M-bM-^QM-$M-bM-^PM-^JM-fM-^UM-^HM-fM-^QM-!M-gM-^IM-%M-`M-(M-$M-dM-^PM-$M-gM-^QM-!M-bM-^QM-%M-bM-^PM-^JM-fM-^EM-^DM-fM-^UM-4M-fM-%M-^TM-fM-^UM--M-`M-(M-$M-dM-^LM-$M-fM-^EM-(M-fM-^]M-.M-bM-^QM-%M-bM-^PM-^JM-fM-%M-^FM-fM-^UM-,M-`M-(M-$M-eM-^HM-$M-gM-^YM-%M-gM-^MM-)M-fM-=M-)M-bM-^QM-.M-bM-^PM-^JM-fM-^UM-^HM-fM-^QM-!M-gM-^IM-%M-bM-^PM-$M-fM-^UM-^HM-fM-^QM-!M-gM-^IM-%M-dM- M-$M-fM-^EM-%M-fM-^UM-$M-bM-^QM-2
> ==> dst/file_uxbinary <==
--
Patrick Mézard
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: test-convert-p4-filetypes.err
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-devel/attachments/20090413/ee631541/attachment.ksh>
More information about the Mercurial-devel
mailing list