[svk-devel] Empty commit messages when smerg-ing or push-ing

Paul Cochrane paultcochrane at gmail.com
Fri Jan 19 08:51:06 EST 2007


Hi all,

I've got a continuation of the problem I was having earlier when I
enquired about editing of svk commit logs.  The situation is this:
I'm helping out on the Parrot project and recently (within the last
month) a pre-commit check was put on the svn repository to look for
empty commit messages.  What this then showed up is that whenever I do
a 'svk smerge' or 'svk push' that sometimes svk tries to do a commit
upstream (often changing files that I've not changed or committed to
the local svk repository) which generates an empty commit message and
hence the merge back to the repo fails.  To get around this I try to
use 'svk merge -c <failing_svk_revision_number> //parrot/local
//parrot/remote -m "empty message"' so make the merge pass, however,
this has had the effect (twice now) of reverting files in the parrot
svn repository which I haven't touched!  svk also managed to re-commit
some other files that I'd already pushed upstream, and managed *not*
to merge my most recent local commit.  I'd like to know why this is
happening and how to fix the problem so that I can continue to use svk
to help rather than hinder the project.  Here follows the most recent
example:

I made sure everything was up to date:

cochrane at avon parrot $ svk up -sm
Syncing https://svn.perl.org/parrot/trunk
Auto-merging (25316, 25316) /parrot/remote to /parrot/local (base
/parrot/remote:25316).
Empty merge.
Syncing //parrot/local(/parrot/local) in
/home/cochrane/sourceforge/parrot to 25317.

then committed my most recent change:

cochrane at avon parrot $ svk commit languages/lua/t/shootout.t
Waiting for editor...
Committed revision 25318.

then tried pusing my most recent change (I'm pretty sure there was
only this one, but it's a while since I've done a commit to parrot;
hence why I'm pretty sure).

cochrane at avon parrot $ svk push
Auto-merging (24966, 25318) /parrot/local to /parrot/remote (base
/parrot/remote:25316).
===> Auto-merging (24966, 24973) /parrot/local to /parrot/remote (base
/parrot/remote:24972).
Merging back to mirror source https://svn.perl.org/parrot/trunk.
g   lib/Parrot/Distribution.pm
g   t/codingstd/c_indent.t
    languages/bc - skipped
    languages/bc/docs/parrot_bc.pod - skipped
Empty merge.
===> Auto-merging (24973, 24982) /parrot/local to /parrot/remote (base
/parrot/remote:24972).
Merging back to mirror source https://svn.perl.org/parrot/trunk.
g   docs/dev/nanoparrot.c
g   lib/Parrot/Distribution.pm
g   t/codingstd/c_indent.t
    languages/bc - skipped
    languages/bc/docs/parrot_bc.pod - skipped
Empty merge.
===> Auto-merging (24982, 24983) /parrot/local to /parrot/remote (base
/parrot/remote:24972).
Merging back to mirror source https://svn.perl.org/parrot/trunk.
g   docs/dev/nanoparrot.c
g   lib/Parrot/Distribution.pm
g   compilers/bcg/src/bcg_logger.h
g   compilers/bcg/src/bcg_utils.h
g   t/codingstd/c_indent.t
    languages/bc - skipped
    languages/bc/docs/parrot_bc.pod - skipped
Empty merge.
===> Auto-merging (24983, 24984) /parrot/local to /parrot/remote (base
/parrot/remote:24972).
Merging back to mirror source https://svn.perl.org/parrot/trunk.
g   docs/dev/nanoparrot.c
g   lib/Parrot/Distribution.pm
g   compilers/bcg/src/bcg_logger.h
g   compilers/bcg/src/bcg_utils.h
g   t/codingstd/c_indent.t
g   config/gen/platform/openbsd/math.c
g   config/gen/platform/solaris/math.c
    languages/bc - skipped
    languages/bc/docs/parrot_bc.pod - skipped
Empty merge.
===> Auto-merging (24984, 24985) /parrot/local to /parrot/remote (base
/parrot/remote:24972).
Merging back to mirror source https://svn.perl.org/parrot/trunk.
g   docs/dev/nanoparrot.c
g   lib/Parrot/Distribution.pm
g   include/parrot/smallobject.h
g   include/parrot/atomic/gcc_x86.h
G   include/parrot/thr_windows.h
g   include/parrot/exec.h
g   include/parrot/thread.h
g   compilers/bcg/src/bcg_logger.h
g   compilers/bcg/src/bcg_utils.h
g   t/codingstd/c_indent.t
g   config/gen/platform/openbsd/math.c
g   config/gen/platform/solaris/math.c
    languages/bc - skipped
    languages/bc/docs/parrot_bc.pod - skipped
New merge ticket: 2d5eba5e-1c16-0410-82ce-edad0cc2a1fc:/parrot/local:24985
Merge back committed as revision 16703.
Syncing https://svn.perl.org/parrot/trunk
Retrieving log information from 16703 to 16703
Committed revision 25319 from revision 16703.
===> Auto-merging (24985, 24986) /parrot/local to /parrot/remote (base
/parrot/local:24985).
Merging back to mirror source https://svn.perl.org/parrot/trunk.
g   languages/cola/cola.h
New merge ticket: 2d5eba5e-1c16-0410-82ce-edad0cc2a1fc:/parrot/local:24986
Merge back committed as revision 16704.
Syncing https://svn.perl.org/parrot/trunk
Retrieving log information from 16704 to 16704
Committed revision 25320 from revision 16704.
===> Auto-merging (24986, 24987) /parrot/local to /parrot/remote (base
/parrot/local:24986).
Merging back to mirror source https://svn.perl.org/parrot/trunk.
g   src/jit/arm/exec_dep.h
g   src/jit/arm/jit_emit.h
g   src/jit/ppc/exec_dep.h
g   src/jit/ppc/jit_emit.h
g   src/jit/skeleton/jit_emit.h
g   src/jit/alpha/jit_emit.h
g   src/jit/hppa/jit_emit.h
g   src/jit/mips/jit_emit.h
g   src/jit/i386/jit_emit.h
g   src/jit_debug_xcoff.c
g   src/io/io_unix.c
g   src/jit_debug.c
New merge ticket: 2d5eba5e-1c16-0410-82ce-edad0cc2a1fc:/parrot/local:24987
Merge back committed as revision 16705.
Syncing https://svn.perl.org/parrot/trunk
Retrieving log information from 16705 to 16705
Committed revision 25321 from revision 16705.
===> Auto-merging (24987, 24993) /parrot/local to /parrot/remote (base
/parrot/remote:24992).
Merging back to mirror source https://svn.perl.org/parrot/trunk.
g   src/jit/arm/exec_dep.h
g   src/jit/arm/jit_emit.h
g   src/jit/ppc/exec_dep.h
g   src/jit/ppc/jit_emit.h
g   src/jit/skeleton/jit_emit.h
g   src/jit/alpha/jit_emit.h
g   src/jit/hppa/jit_emit.h
g   src/jit/mips/jit_emit.h
g   src/jit/i386/jit_emit.h
g   src/jit_debug_xcoff.c
g   src/io/io_unix.c
g   src/jit_debug.c
g   docs/dev/nanoparrot.c
g   include/parrot/smallobject.h
g   include/parrot/atomic/gcc_x86.h
G   include/parrot/thr_windows.h
g   include/parrot/exec.h
g   include/parrot/thread.h
g   compilers/bcg/src/bcg_logger.h
g   compilers/bcg/src/bcg_utils.h
g   config/gen/platform/openbsd/math.c
g   config/gen/platform/solaris/math.c
    languages/bc - skipped
    languages/bc/docs/parrot_bc.pod - skipped
g   languages/cola/cola.h
New merge ticket: 2d5eba5e-1c16-0410-82ce-edad0cc2a1fc:/parrot/local:24993
A repository hook failed: MERGE request failed on '/parrot/trunk':
'pre-commit' hook failed with error output:

***  Commit message is empty  ***


Nothing seems to be getting updated here.  Anyway, to make svk be able
to commit the local revision 24993 I use:

cochrane at avon parrot $ svk merge -c 24993 -m "Non-empty svk merge
message" //parrot/local //parrot/remote
Merging back to mirror source https://svn.perl.org/parrot/trunk.
Conflict found in runtime/parrot/library/PGE/Util.pir:
e)dit, d)iff, m)erge, s)kip, t)heirs, y)ours, h)elp? [e] t
G   runtime/parrot/library/PGE/Util.pir
G   src/string.c
Conflict found in compilers/tge/TGE/Compiler.pir:
e)dit, d)iff, m)erge, s)kip, t)heirs, y)ours, h)elp? [e] t
G   compilers/tge/TGE/Compiler.pir
g   compilers/tge/tgc.pir
g   compilers/pge/PGE/Match.pir
Conflict found in languages/tcl/t/cmd_binary.t:
e)dit, d)iff, m)erge, s)kip, t)heirs, y)ours, h)elp? [e] e
Waiting for editor...
Conflict found in languages/tcl/t/cmd_binary.t:
e)dit, d)iff, m)erge, s)kip, t)heirs, y)ours, h)elp? [e] t
G   languages/tcl/t/cmd_binary.t
G   languages/tcl/config/makefiles/root.in
Conflict found in languages/tcl/lib/skipped_tests.tcl:
e)dit, d)iff, m)erge, s)kip, t)heirs, y)ours, h)elp? [e] t
G   languages/tcl/lib/skipped_tests.tcl
Conflict found in languages/tcl/src/binary.c:
e)dit, d)iff, m)erge, s)kip, t)heirs, y)ours, h)elp? [e] e
Waiting for editor...
Conflict found in languages/tcl/src/binary.c:
e)dit, d)iff, m)erge, s)kip, t)heirs, y)ours, h)elp? [e] t
G   languages/tcl/src/binary.c
Merge back committed as revision 16706.
Syncing https://svn.perl.org/parrot/trunk
Retrieving log information from 16706 to 16706
Committed revision 25322 from revision 16706.

Which causes conflicts on files I've not edited (in some cases,
ever!).  I then just use the 'theirs' option so that the version in
the remote repository is used, however, this causes the files with the
'theirs' changes to be reverted, as I then do a svk up -sm and get:

cochrane at avon parrot $ svk up -sm
Syncing https://svn.perl.org/parrot/trunk
Auto-merging (25316, 25322) /parrot/remote to /parrot/local (base
/parrot/remote:25316).
U   runtime/parrot/library/PGE/Util.pir
U   compilers/tge/TGE/Compiler.pir
U   languages/tcl/t/cmd_binary.t
U   languages/tcl/lib/skipped_tests.tcl
U   languages/tcl/src/binary.c
New merge ticket: d31e2699-5ff4-0310-a27c-f18f2fbe73fe:/trunk:16706
Committed revision 25323.
Syncing //parrot/local(/parrot/local) in
/home/cochrane/sourceforge/parrot to 25323.
U   runtime/parrot/library/PGE/Util.pir
U   compilers/tge/TGE/Compiler.pir
U   languages/tcl/t/cmd_binary.t
U   languages/tcl/lib/skipped_tests.tcl
U   languages/tcl/src/binary.c


The last 5 updated files then had to be reverted using my svn working directory.

The fact that I managed to revert files (again; this is the second
time) in the parrot svn repository has annoyed several people, and I'm
trying my hardest *not* to!

My normal svk work cycle goes as follows:

svk up -sm
 ... edit some files ...
svk commit <files>
svk push  (was svk smerge -Il --verbatim //parrot/local //parrot/remote)

What have I been doing wrong?  *Am* I doing anything wrong?  Do I need
to remove my parrot local mirror and working copy and start all over?
(I've done this once before, which was a painful experience and hasn't
seemed to have helped me).

Please, any advice would be greatly appreciated so that I can keep
using svk (my most useful software development tool) and keep helping
out in a fun project without screwing up other people's hard work.

Thanks heaps in advance,

Paul


More information about the svk-devel mailing list