Git development
 help / color / mirror / Atom feed
From: Martin Schlemmer <azarah@nosferatu.za.org>
To: GIT Mailing Lists <git@vger.kernel.org>
Cc: Petr Baudis <pasky@ucw.cz>
Subject: Re: [patch pasky 1/2] fix various issues in gitapply.sh (basically did not handle add/del/cm at all)
Date: Fri, 15 Apr 2005 11:31:38 +0200	[thread overview]
Message-ID: <1113557498.23299.167.camel@nosferatu.lan> (raw)
In-Reply-To: <1113557318.23299.165.camel@nosferatu.lan>

[-- Attachment #1: Type: text/plain, Size: 3270 bytes --]

PS: forget the '1/2' in the topic, i did it slightly different which
required changes to gettrack.sh, etc, but to got getmerge.sh, and saw my
short sightedness.

On Fri, 2005-04-15 at 11:28 +0200, Martin Schlemmer wrote:
> Hi,
> 
> The egrep regex should not escape the '{' and '}', and also add a check
> for ' \t' so that we do not pickup stuff like '+----', etc.  Fix typo in
> assignment.  Check if file exists in new tree before adding/removing
> (might add support for this lowlevel to increase speed?).  Fix typo in
> line removing temp files.
> 
> Signed-off-by: Martin Schlemmer <azarah@gentoo.org>
> 
> gitapply.sh:  47b9346d2679b1bf34220fe4502f15c7d0737b0c
> --- 47b9346d2679b1bf34220fe4502f15c7d0737b0c/gitapply.sh
> +++ uncommitted/gitapply.sh
> @@ -19,15 +19,22 @@
>  # just handle it all ourselves.
>  patch -p1 -N <$patchfifo &
> 
> -tee $patchfifo | egrep '^[+-]\{3\}' | {
> +exits_in_cache() {
> +       for x in $(ls-tree "$1"); do
> +               [ "$x" = "$2" ] && return 0
> +       done
> +       return 1
> +}
> +
> +tee $patchfifo | egrep '^[+-]{3}[ \t]' | {
>         victim=
>         origmode=
> 
>         while read sign file attrs; do
> -               echo $sign $file $attrs ... >&2
> +#              echo $sign $file $attrs ... >&2
>                 case $sign in
>                 "---")
> -                       victim=file
> +                       victim=$file
>                         mode=$(echo $attrs | sed 's/.*mode:[0-7]*\([0-7]\{3\}\).*/\1/')
>                         origmode=
>                         [ "$mode" != "$attrs" ] && origmode=$mode
> @@ -35,14 +42,19 @@
>                 "+++")
>                         if [ "$file" = "/dev/null" ]; then
>                                 torm=$(echo "$victim" | sed 's/[^\/]*\///') #-p1
> -                               echo -ne "rm\0$torm\0"
> +                               tree=$(echo $attrs | sed 's/.*tree:\([0-9a-f]\{40\}\).*/\1/')
> +                               exits_in_cache "$tree" "$torm" && echo -ne "rm\0$torm\0"
>                                 continue
>                         elif [ "$victim" = "/dev/null" ]; then
> -                               echo -ne "add\0$file\0"
> +                               toadd=$(echo "$file" | sed 's/[^\/]*\///') #-p1
> +                               tree=$(echo "$file" | sed -e 's/\([^\/]*\)\/.*/\1/')
> +                               exits_in_cache "$tree" "$toadd" || echo -ne "add\0$toadd\0"
>                         fi
>                         mode=$(echo $attrs | sed 's/.*mode:[0-7]*\([0-7]\{3\}\).*/\1/')
>                         if [ "$mode" ] && [ "$mode" != "$attrs" ] && [ "$origmode" != "$mode" ]; then
> -                               echo -ne "cm\0$mode\0$file\0"
> +                               tochmod=$(echo "$file" | sed 's/[^\/]*\///') #-p1
> +                               # need a space else numbers gets converted
> +                               echo -ne "cm\0 $mode\0$tochmod\0"
>                         fi
>                         ;;
>                 *)
> @@ -74,4 +86,4 @@
>  done
>  ' padding
> 
> -rm $pathfifo $todo $gonefile
> +rm $patchfifo $todo $gonefile
> 
> 
-- 
Martin Schlemmer


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2005-04-15  9:25 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-04-15  9:28 [patch pasky 1/2] fix various issues in gitapply.sh (basically did not handle add/del/cm at all) Martin Schlemmer
2005-04-15  9:31 ` Martin Schlemmer [this message]
2005-04-15 18:15 ` Petr Baudis
2005-04-15 20:30   ` Martin Schlemmer

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=1113557498.23299.167.camel@nosferatu.lan \
    --to=azarah@nosferatu.za.org \
    --cc=git@vger.kernel.org \
    --cc=pasky@ucw.cz \
    /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