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

Derek Atkins warlord at MIT.EDU
Fri Jan 19 11:03:03 EST 2007


What version of SVK?

-derek

"Paul Cochrane" <paultcochrane at gmail.com> writes:

> 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
> _______________________________________________
> svk-devel mailing list
> svk-devel at bestpractical.com
> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/svk-devel
>
>

-- 
       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available


More information about the svk-devel mailing list