All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marcel Holtmann <marcel@holtmann.org>
To: Petr Baudis <pasky@ucw.cz>
Cc: GIT Mailing List <git@vger.kernel.org>
Subject: Re: [PATCH Cogito] Make use of external editor work like CVS
Date: Sun, 08 May 2005 22:26:55 +0200	[thread overview]
Message-ID: <1115584015.8949.43.camel@pegasus> (raw)
In-Reply-To: <20050508200334.GG9495@pasky.ji.cz>

Hi Petr,

> > look at the attached patch. We should use "fmt -s" to keep newlines that
> > are inside the commit message and there is one unneeded empty CG: line.
> 
> thanks, fixed and pushed out.

cool. Now I have everything I am used to from CVS, but ...

@@ -113,7 +113,9 @@
                # TODO: Prepend a letter describing whether it's addition,
                # removal or update. Or call git status on those files.
                echo "CG:    $file" >>$LOGMSG
-               [ "$msgs" ] && echo $file
+               if [ "$msgs" ] && ! [ "$forceeditor" ]; then
+                       echo $file
+               fi
        done
 fi

There is no need to print out the files if we start the editor anyway.

@@ -122,10 +124,10 @@
 if tty -s; then
        if ! [ "$msgs" ] || [ "$forceeditor" ]; then
                ${EDITOR:-vi} $LOGMSG2
-       fi
-       if ! [ "$msgs" ] && ! [ $LOGMSG2 -nt $LOGMSG ]; then
-               rm $LOGMSG $LOGMSG2
-               die 'Commit message not modified, commit aborted'
+               if ! [ $LOGMSG2 -nt $LOGMSG ]; then
+                       rm $LOGMSG $LOGMSG2
+                       die 'Commit message not modified, commit aborted'
+               fi
        fi
 else

If you provide a commit message via -m and then close the editor without
changing it, it will commit the message. I think that will not be the
intention of the user.

> > I also put back in the "mess", because if there is no commit message
> > provided via -m it gives us an initial empty line to start in. This is
> > the same that CVS does and it makes the life inside vi a lot more
> > easier.
> 
> Well, I use 'O' to start editing. ;-) (Actually, I use the -m arguments
> extensively; the way it is now is how I always dreamt of it since I
> started using SCMs. Possibly in conjuction with -e to add some fancy
> stuff.)
> 
> Your way might be cunning, fast, or even clever, but it was certainly
> not clear, therefore not maintainable well. I tried to implement it in a
> simpler and more clear way. Does it behave as you want now?

What should I say ;)

I will do a little bit more tests, but it looks very good. Besides the
stuff above.

> > > > If you want the extra newline(s) then it is a good idea to add something
> > > > that strips heading and trailing empty lines from the final commit
> > > > message, because otherwise it will be ugly if you don't enter extra text
> > > > for the merge.
> > > 
> > > Isn't that what I initially suggested? :-)
> > 
> > But this hasn't been done so far. And I don't know any shell tool for
> > this job, beside some crazy awk or sed stuff. However stripspace.c from
> > git-tools can do this job.
> 
> #/bin/sh
> 
> leading=1
> emptylines=0
> while read line; do
>         if ! [ "$line" ]; then
> 		[ "$leading" ] && continue
> 		emptylines=$(($emptylines + 1))
>         else
> 		leading=0
>                 while [ $emptylines -gt 0 ]; do
>                         echo ""
>                         emptylines=$(($emptylines - 1))
>                 done
>                 echo $line
>         fi
> done
> 
> or something? (Based on someone else's script since I was too lazy. ;-)

I am not that script expert anymore. I do most stuff in C now and I am
very happy with it. Maybe someone else comes up with a clever way to
handle the following case:

/*
 * Remove empty lines from the beginning and end.
 *
 * Turn multiple consecutive empty lines into just one
 * empty line.
 */

Regards

Marcel



  reply	other threads:[~2005-05-08 20:27 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-08 15:02 [PATCH Cogito] Make use of external editor work like CVS Marcel Holtmann
2005-05-08 15:24 ` Sean
2005-05-08 15:25 ` Petr Baudis
2005-05-08 15:43   ` Marcel Holtmann
2005-05-08 15:56     ` Petr Baudis
2005-05-08 16:15       ` Marcel Holtmann
2005-05-08 17:12         ` Petr Baudis
2005-05-08 17:17           ` Marcel Holtmann
2005-05-08 17:30             ` Petr Baudis
2005-05-08 17:40               ` Marcel Holtmann
2005-05-08 17:51                 ` Petr Baudis
2005-05-08 18:57                   ` Marcel Holtmann
2005-05-08 20:03                     ` Petr Baudis
2005-05-08 20:26                       ` Marcel Holtmann [this message]
2005-05-08 21:08                         ` Petr Baudis
2005-05-08 21:19                           ` Marcel Holtmann
2005-05-09  3:28                           ` Edgar Toernig
2005-05-09  7:33                             ` Petr Baudis
2005-05-08 21:46                         ` Sean
2005-05-08 21:43                       ` Marcel Holtmann
  -- strict thread matches above, loose matches on Subject: below --
2005-05-08  1:10 Marcel Holtmann

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=1115584015.8949.43.camel@pegasus \
    --to=marcel@holtmann.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 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.