Re: [PATCH v4] git-p4: add config git-p4.pathEncoding

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



larsxschneider@xxxxxxxxx writes:

> From: Lars Schneider <larsxschneider@xxxxxxxxx>
>
> Perforce keeps the encoding of a path as given by the originating OS.
> Git expects paths encoded as UTF-8. Add a config to tell git-p4 what
> encoding Perforce had used for the paths. This encoding is used to
> transcode the paths to UTF-8. As an example, Perforce on my Windows
> box uses “cp1252” to encode path names.
>
> Signed-off-by: Lars Schneider <larsxschneider@xxxxxxxxx>
> ---

Thanks.

> +git-p4.pathEncoding::
> +	Perforce keeps the encoding of a path as given by the originating OS.
> +	Git expects paths encoded as UTF-8. Use this config to tell git-p4 
> +	what encoding Perforce had used for the paths. This encoding is used
> +	to transcode the paths to UTF-8. As an example, Perforce on my Windows
> +	box uses “cp1252” to encode path names.
> +

The log message is sort of personal statement, but "my Windows"
smells out of place here, as there is no clear writer in the
documentation.  Perhaps rephrase it to:

    For example, Perforce often uses "cp1252" to encode path names
    on Windows box.

or something?

> diff --git a/t/t9822-git-p4-path-encoding.sh b/t/t9822-git-p4-path-encoding.sh
> new file mode 100755
> index 0000000..3a1779a
> --- /dev/null
> +++ b/t/t9822-git-p4-path-encoding.sh
> @@ -0,0 +1,65 @@
> +#!/bin/sh
> +
> +test_description='Clone repositories with non ASCII paths'
> +
> +. ./lib-git-p4.sh
> +
> +UTF8_ESCAPED="a-\303\244_o-\303\266_u-\303\274.txt"
> +ISO8859_ESCAPED="\141\55\344\137\157\55\366\137\165\55\374\56\164\170\164"
> +
> +# You can generate the ISO8859_ESCAPED with the following command:

Please don't.  You don't want to encode ".txt" and other things that
are ASCII, which you didn't encode in the original UTF8_ESCAPED.

> +# printf "$UTF8_ESCAPED" | \
> +# iconv -f utf-8 -t iso8859-1 | \
> +# xxd -ps -u -c 1 | xargs bash -c 'for v; do echo "ibase=16; obase=8; $v" | bc; done' bash | \
> +# tr "\n" "\\"

Besides, you somehow came up with UTF8_ESCAPED with a procedure that
is not documented (and it does avoid hiding obvious things like
".txt" in the backslashes).  I do not think it is necessary or even
a good idea to give a procedure that is not very portable (xxd?
bash?) and does not produce what we want to see, only for ISO8859.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]