git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Pete Wyckoff <pw@padd.com>
To: Alexandru Juncu <alexj@rosedu.org>
Cc: git@vger.kernel.org, Alexandru Juncu <ajuncu@ixiacom.com>,
	Alex Badea <abadea@ixiacom.com>
Subject: Re: [PATCH] git-p4: Fix occasional truncation of symlink contents.
Date: Sun, 11 Aug 2013 07:57:38 -0400	[thread overview]
Message-ID: <20130811115738.GA26658@padd.com> (raw)
In-Reply-To: <1375967858-10615-1-git-send-email-ajuncu@ixiacom.com>

alexj@rosedu.org wrote on Thu, 08 Aug 2013 16:17 +0300:
> Symlink contents in p4 print sometimes have a trailing
> new line character, but sometimes it doesn't. git-p4
> should only remove the last character if that character
> is '\n'.

Your patch looks fine, and harmless if symlinks continue
to have \n on the end.  I'd like to understand a bit why
this behavior is different for you, though.  Could you do
this test on a symlink in your depot?

Here //depot/symlink points to "symlink-target".  You can
see the \n in position 0o332 below.  What happens on a
symlink in your repo?

    arf-git-test$ p4 fstat //depot/symlink
    ... depotFile //depot/symlink
    ... clientFile /dev/shm/trash directory.t9802-git-p4-filetype/cli/symlink
    ... isMapped 
    ... headAction add
    ... headType symlink
    ... headTime 1376221978
    ... headRev 1
    ... headChange 6
    ... headModTime 1376221978
    ... haveRev 1

    arf-git-test$ p4 -G print //depot/symlink | od -c
    0000000   {   s 004  \0  \0  \0   c   o   d   e   s 004  \0  \0  \0   s
    0000020   t   a   t   s  \t  \0  \0  \0   d   e   p   o   t   F   i   l
    0000040   e   s 017  \0  \0  \0   /   /   d   e   p   o   t   /   s   y
    0000060   m   l   i   n   k   s 003  \0  \0  \0   r   e   v   s 001  \0
    0000100  \0  \0   1   s 006  \0  \0  \0   c   h   a   n   g   e   s 001
    0000120  \0  \0  \0   6   s 006  \0  \0  \0   a   c   t   i   o   n   s
    0000140 003  \0  \0  \0   a   d   d   s 004  \0  \0  \0   t   y   p   e
    0000160   s  \a  \0  \0  \0   s   y   m   l   i   n   k   s 004  \0  \0
    0000200  \0   t   i   m   e   s  \n  \0  \0  \0   1   3   7   6   2   2
    0000220   1   9   7   8   s  \b  \0  \0  \0   f   i   l   e   S   i   z
    0000240   e   s 002  \0  \0  \0   1   5   0   {   s 004  \0  \0  \0   c
    0000260   o   d   e   s 006  \0  \0  \0   b   i   n   a   r   y   s 004
    0000300  \0  \0  \0   d   a   t   a   s 017  \0  \0  \0   s   y   m   l
    0000320   i   n   k   -   t   a   r   g   e   t  \n   0   {   s 004  \0
    0000340  \0  \0   c   o   d   e   s 006  \0  \0  \0   b   i   n   a   r
    0000360   y   s 004  \0  \0  \0   d   a   t   a   s  \0  \0  \0  \0   0
    0000400

Also, what version is your server, from "p4 info":

    Server version: P4D/LINUX26X86_64/2013.1/610569 (2013/03/19)

		-- Pete


> Signed-off-by: Alex Juncu <ajuncu@ixiacom.com>
> Signed-off-by: Alex Badea <abadea@ixiacom.com>
> ---
>  git-p4.py | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/git-p4.py b/git-p4.py
> index 31e71ff..a53a6dc 100755
> --- a/git-p4.py
> +++ b/git-p4.py
> @@ -2180,9 +2180,13 @@ class P4Sync(Command, P4UserMap):
>              git_mode = "100755"
>          if type_base == "symlink":
>              git_mode = "120000"
> -            # p4 print on a symlink contains "target\n"; remove the newline
> +            # p4 print on a symlink sometimes contains "target\n";
> +            # if it does, remove the newline
>              data = ''.join(contents)
> -            contents = [data[:-1]]
> +            if data[-1] == '\n':
> +                contents = [data[:-1]]
> +            else:
> +                contents = [data]
>  
>          if type_base == "utf16":
>              # p4 delivers different text in the python output to -G
> -- 
> 1.8.4.rc0.1.g8f6a3e5

  reply	other threads:[~2013-08-11 11:57 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-08 13:17 [PATCH] git-p4: Fix occasional truncation of symlink contents Alexandru Juncu
2013-08-11 11:57 ` Pete Wyckoff [this message]
2013-08-12  7:46   ` Alexandru Juncu
2013-08-12 12:38     ` Pete Wyckoff
2013-08-12 13:30       ` Alexandru Juncu
2013-08-12 17:11       ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130811115738.GA26658@padd.com \
    --to=pw@padd.com \
    --cc=abadea@ixiacom.com \
    --cc=ajuncu@ixiacom.com \
    --cc=alexj@rosedu.org \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).