Re: [PATCH Cogito] Make use of external editor work like CVS
- From
- Marcel Holtmann <marcel@holtmann.org>
- Date
- May 8, 2005, 18:57 UTC
- Message-ID
- <1115578658.8949.9.camel@pegasus>
- In-Reply-To
- <20050508175156.GA9495@pasky.ji.cz>
Hi Petr,
Show 12 quoted lines
> > > > Sometime you don't have any other choice, because diff is not perfect. > > > > Do you wanna apply that patch or should I change the mktemp templates > > > > first? > > > > > > It looks like it'll be most painless when I just reinvent parts of your > > > patch here locally and you can send me patches on top of that. > > > > it is your choice. I can change that if you like. My latest version > > should apply cleanly against your current tree. > > I've pushed my changes, please have a look at them. I think I've got > everything important, but I might've forgot something.
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.
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.
The change (aka the "mess") looks crazy, but play with the different situations and see what it does.
Show 6 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.
Regards
Marcel
cg-commit: needs update
Index: cg-commit =================================================================== --- 6054af5ea0ef88077ad91131b0411dd10590b863/cg-commit (mode:100755) +++ uncommitted/cg-commit (mode:100755) @@ -80,17 +80,23 @@ [ "$msgs" ] && echo "$uri" done echo >>$LOGMSG +else + first=1 fi -first=1 + for msg in "${msgs[@]}"; do if [ "$first" ]; then first= else echo >>$LOGMSG fi - echo $msg | fmt >>$LOGMSG + echo $msg | fmt -s >>$LOGMSG done +if [ "$first" ]; then + echo >>$LOGMSG +fi + cat >>$LOGMSG <<EOT CG: ----------------------------------------------------------------------- CG: Lines beginning with the CG: prefix are removed automatically @@ -108,7 +114,6 @@ echo "CG: $file" >>$LOGMSG [ "$msgs" ] && echo $file done - echo "CG:" >>$LOGMSG fi echo "CG: -----------------------------------------------------------------------" >>$LOGMSG