From: Petr Baudis Date: Sun, 08 May 2005 20:03:34 GMT Subject: Re: [PATCH Cogito] Make use of external editor work like CVS Message-ID: <20050508200334.GG9495@pasky.ji.cz> In-Reply-To: <1115578658.8949.9.camel@pegasus> Dear diary, on Sun, May 08, 2005 at 08:57:38PM CEST, I got a letter where Marcel Holtmann told me that... > Hi Petr, Hello, > 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. > 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? > > > 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. ;-) -- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor