Re: [PATCH Cogito] Make use of external editor work like CVS
- From
Petr Baudis <pasky@ucw.cz>
- Date
- May 8, 2005, 20:03 UTC
- 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 <marcel@holtmann.org> 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?
Show 10 quoted lines
> > > 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
doneor 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