[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: vc-dwim 0.2: a version-control-agnostic ChangeLog diff and commit to

From: Ralf Wildenhues
Subject: Re: vc-dwim 0.2: a version-control-agnostic ChangeLog diff and commit tool
Date: Tue, 26 Sep 2006 21:30:54 +0200
User-agent: Mutt/1.5.13 (2006-08-11)

Hello Jim,

Sorry for the delay. ;-)

* Jim Meyering wrote on Fri, Sep 22, 2006 at 06:29:03PM CEST:
> Thanks for persevering :)

Hehe.  I see a chance to reconcile some stuff I've been solving locally 
or doing inefficiently.

> Ralf Wildenhues <address@hidden> wrote:
> > In a gnulib CVS checkout (with modifications), I get:
> >
> > $ vc-dwim ChangeLog
> > | vc-dwim: ChangeLog: no unidiff output
> Does ChangeLog have changes, i.e., does "cvs diff ChangeLog" output
> something?

No, it did not have any changes.  I was somehow under the impression
that this would help me generate a ChangeLog entry for other files that
I changed; upon second reading that seems not to be intended at all,
so I guess the program worked as intended, just the message was a bit
confusing.  Maybe just not output anything at all in that case?

While we're at this: how about if vc-dwim helped me generate a stub
ChangeLog entry (with file names listed, maybe functions)?  I don't know
how others do this, but I think you don't want to know how I do it.[1]

And going even further, there are some projects that use some of the
newer version control systems but do not store their commit logs in a
ChangeLog; for example, with svn I've grown accustomed to tracking my
personal ChangeLog file with a script like the one very imperfect one
below[2].  Maybe vc-dwim could do something like this for me in a
vcs-agnostic manner?  ;-)

I haven't tested it with genuine changes yet.

FWIW, it would be really nice to see the changes from 0.2.1 also in the
hg tree (I prefer a vcs-ed upstream when providing feedback).


[1] Note I seem unable to teach my fingers the emacs way of life, and
AFAIK vim does not have a generate-changelog-stub kind of function;
maybe I should write one ... but also I only know of emacs functions
that do so based on version control commits; too late for GNU projects.


set -ex
export LC_ALL
trap 'rm -f "$log"' 0 1 2 15
old_revision=`sed -n '/^r[0-9]*/ {s/r\([0-9]*\).*/\1/;p;q;}' ChangeLog || echo 
svn up 2>&1 | tee "$log"
new_revision=`sed -n '/^At revision /{s/[^0-9]* \([0-9]*\).*/\1/;p;q;}
                      /^Updated to /{s/[^0-9]* \([0-9]*\).*/\1/;p;q;}' "$log"`
if test "$old_revision" -ne "$new_revision"; then
  old_revision=`expr $old_revision + 1`
  (svn log -v -r HEAD:$old_revision; cat ChangeLog ) > ChangeLog.tmp
  mv -f ChangeLog.tmp ChangeLog

reply via email to

[Prev in Thread] Current Thread [Next in Thread]