All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.