git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* merge-recur status
@ 2006-08-09 21:02 Johannes Schindelin
  2006-08-09 21:18 ` Junio C Hamano
  2006-08-10  6:29 ` Fredrik Kuivinen
  0 siblings, 2 replies; 5+ messages in thread
From: Johannes Schindelin @ 2006-08-09 21:02 UTC (permalink / raw)
  To: git

Hi,

with my last patches, I tested merge-recur on 'next' (46faaaf8) by 
comparing the index after -recur and -recursive, respectively.

At this stage, there are 1017 merges with exactly two parents (which is 
the only type of merge -recursive can handle).

For all but 9 of them, the indices where identical. The reason for those 9 
to differ: the order of the merge-bases. -recursive does its own thing 
(set intersection after traversing the commits by hand, probably in 
topological order), whereas with the last patches, -recur orders them by 
decreasing date.

The 9 cases are:

52bc0e29: 1 better
a5c8a98c: 1 better, 2 identical
63bccad3: 1 identical
dcaad49c: 3 identical
7f2d5cb5: 3 identical
c2b9e699: 2 identical
4cc0b8a4: 2 identical
d2b9b5f5: 1 identical
41094b8e: worse

where

- "1 better" means that -recursive has a conflicting hunk, where 
  -recur resolves it (it is identical with the commit),

- "1 identical" means that there were multiply conflicting hunks (meaning 
  that merging two merge-bases already conflicted, and another conflict 
  came on top), and the versions of -recursive and -recur differ only in 
  the order of the conflict nesting, and

- "worse" means that the merge of 859ab4c and 061ad5f, which _should_ have 
  resulted in 41094b8e (as with -recursive) resulted in a

  "fatal: Entry 'epoch.c' would be overwritten by merge. Cannot merge."

  It might have its reason in the fact that 859ab4c and 061ad5f have
  8 (!) merge bases.

Now, on average, -recur takes 0.1 seconds on average, spending only 9.9% 
of what -recursive takes (on average). So I am happy with the speed.

I think -recur is really really close to being trustworthy, _but_ I do not 
understand the reason behind the error. It happens in line 614 of 
unpack-trees.c, where the "index" contains epoch.c, and "index" and 
"remote" are identical, but "head" is empty.

I tried to wrap my head over it, but seem unable to do so. Also, I do not 
find the case 14ALT (which is mentioned in unpack-trees.c:603) in 
Documentation/technical/trivial-merge.txt.

Help?

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: merge-recur status
  2006-08-09 21:02 merge-recur status Johannes Schindelin
@ 2006-08-09 21:18 ` Junio C Hamano
  2006-08-10  6:29 ` Fredrik Kuivinen
  1 sibling, 0 replies; 5+ messages in thread
From: Junio C Hamano @ 2006-08-09 21:18 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> I tried to wrap my head over it, but seem unable to do so. Also, I do not 
> find the case 14ALT (which is mentioned in unpack-trees.c:603) in 
> Documentation/technical/trivial-merge.txt.

That is t/t1000-read-tree-m-3way.sh case 14.  The current
semantics for case 14 used to be called ALT until 3e03aaf
simplified the table to reflect the reality, because the
"alternative" semantics had been in use for quite some time
already back then.

I'd like to take a look at 41094b8e, the real trouble that is
causing you grief, sometime later, but I'm currently pondering
if the one I tag should be called 1.4.2 or 1.4.2-rc4 ;-).

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: merge-recur status
  2006-08-09 21:02 merge-recur status Johannes Schindelin
  2006-08-09 21:18 ` Junio C Hamano
@ 2006-08-10  6:29 ` Fredrik Kuivinen
  2006-08-10  7:54   ` Johannes Schindelin
  1 sibling, 1 reply; 5+ messages in thread
From: Fredrik Kuivinen @ 2006-08-10  6:29 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git, junkio

Hi,

I just want to say that you have made a great work with porting
merge-recursive to C!

I ran merge-recur through a couple of test merges that I used to test
merge-recursive with. It is mostly merge cases people have posted to
the mailing list, but also some home made ones. For some of them I get
segmentation faults, see the log below. The first three come from
Linus kernel tree. The last one,
44583d380d189095fa959ec8ba87f0cb6deb15f5, is from Thomas Gleixner's
historical Linux kernel repository. I haven't seen "fatal: fatal:
cache changed flush_cache();" before...

Let me know if you can't reproduce some them.

- Fredrik



Testing 84ffa747520edd4556b136bdfc9df9eb1673ce12 Merge from-linus to-akpm
Starting merge...
Merging merge-test-branch with 81065e2f415af6c028eac13f481fb9e60a0b487b
Merging:
702c7e7626deeabb057b6f529167b65ec2eefbdb [ACPI] fix ia64 build issues resulting from Lindent and merge
81065e2f415af6c028eac13f481fb9e60a0b487b [PATCH] zd1201 kmalloc size fix
found 2 common ancestor(s):
30e332f3307e9f7718490a706e5ce99f0d3a7b26 [ACPI] re-enable platform-specific hotkey drivers by default
3edea4833a1efcd43e1dff082bc8001fdfe74b34 [PATCH] intelfb/fbdev: Save info->flags in a local variable
  Merging:
  30e332f3307e9f7718490a706e5ce99f0d3a7b26 [ACPI] re-enable platform-specific hotkey drivers by default
  3edea4833a1efcd43e1dff082bc8001fdfe74b34 [PATCH] intelfb/fbdev: Save info->flags in a local variable
  found 1 common ancestor(s):
  d4ab025b73a2d10548e17765eb76f3b7351dc611 [ACPI] delete Warning: Encountered executable code at module level, [AE_NOT_CONFIGURED]
  Removing Documentation/DocBook/scsidrivers.tmpl
  Removing Documentation/dvb/README.dibusb
  Auto-merging Documentation/kernel-parameters.txt
  Removing Documentation/networking/wanpipe.txt
  Removing arch/arm/kernel/arch.c
  Removing arch/arm/lib/longlong.h
  Removing arch/arm/lib/udivdi3.c
  Removing arch/arm/mach-omap/Kconfig
  Removing arch/arm/mach-omap/Makefile
  Removing arch/arm/mach-omap/common.c
  Removing arch/mips/vr41xx/common/giu.c
  Removing arch/ppc/boot/utils/addSystemMap.c
  Removing arch/ppc/syslib/ppc4xx_kgdb.c
  Removing arch/ppc64/boot/mknote.c
  Removing arch/ppc64/boot/piggyback.c
  Removing arch/ppc64/kernel/XmPciLpEvent.c
  Removing arch/ppc64/kernel/iSeries_pci_reset.c
  Removing arch/um/kernel/skas/time.c
  Removing arch/um/kernel/tt/time.c
  Removing arch/um/kernel/tt/unmap.c
  Auto-merging drivers/acpi/osl.c
  Removing drivers/base/class_simple.c
  Removing drivers/ide/cris/ide-v10.c
  Removing drivers/input/gameport/cs461x.c
  Removing drivers/input/gameport/vortex.c
  Removing drivers/isdn/hisax/enternow.h
  Removing drivers/isdn/hisax/st5481_hdlc.c
  Removing drivers/isdn/hisax/st5481_hdlc.h
  Removing drivers/isdn/sc/debug.c
  Removing drivers/macintosh/macserial.c
  Removing drivers/macintosh/macserial.h
  Removing drivers/media/dvb/b2c2/skystar2.c
  Removing drivers/media/dvb/dibusb/Kconfig
  Removing drivers/media/dvb/dibusb/Makefile
  Removing drivers/media/dvb/dibusb/dvb-dibusb-core.c
  Removing drivers/media/dvb/dibusb/dvb-dibusb-dvb.c
  Removing drivers/media/dvb/dibusb/dvb-dibusb-fe-i2c.c
  Removing drivers/media/dvb/dibusb/dvb-dibusb-firmware.c
  Removing drivers/media/dvb/dibusb/dvb-dibusb-remote.c
  Removing drivers/media/dvb/dibusb/dvb-dibusb-usb.c
  Removing drivers/media/dvb/dibusb/dvb-dibusb.h
  Removing drivers/mtd/maps/db1550-flash.c
  Removing drivers/mtd/maps/db1x00-flash.c
  Removing drivers/mtd/maps/elan-104nc.c
  Removing drivers/mtd/maps/pb1550-flash.c
  Removing drivers/mtd/maps/pb1xxx-flash.c
  Removing drivers/mtd/nand/tx4925ndfmc.c
  Removing drivers/mtd/nand/tx4938ndfmc.c
  Removing drivers/net/fmv18x.c
  Removing drivers/net/sk_g16.c
  Removing drivers/net/sk_g16.h
  Removing drivers/net/skfp/lnkstat.c
  Removing drivers/net/skfp/smtparse.c
  Removing drivers/net/smc-mca.h
  Removing drivers/pci/hotplug/acpiphp_pci.c
  Removing drivers/pci/hotplug/acpiphp_res.c
  Removing drivers/scsi/pci2000.c
  Removing drivers/scsi/pci2220i.c
  Removing drivers/scsi/pci2220i.h
  Removing drivers/scsi/psi_dale.h
  Removing drivers/scsi/psi_roy.h
  Removing drivers/serial/bast_sio.c
  Removing drivers/usb/atm/usb_atm.c
  Removing drivers/usb/atm/usb_atm.h
  Removing fs/freevxfs/vxfs_kcompat.h
  Removing include/asm-m32r/m32102peri.h
  Removing include/asm-ppc/fsl_ocp.h
  Removing include/asm-ppc64/iSeries/HvCallCfg.h
  Removing include/asm-ppc64/iSeries/LparData.h
  Removing include/asm-ppc64/iSeries/XmPciLpEvent.h
  Removing include/asm-ppc64/iSeries/iSeries_proc.h
  Removing include/linux/ioc4_common.h
  Removing include/linux/netfilter_ipv4/lockhelp.h
  Removing include/linux/pci-dynids.h
  Removing include/linux/xattr_acl.h
  Removing net/ipv4/utils.c
  Removing sound/pcmcia/vx/vx_entry.c
  Removing sound/pcmcia/vx/vxp/home/freku/local/bin/git-merge: line 286: 32288 Segmenteringsfel        git-merge-$strategy $common -- "$head_arg" "$@"
No merge strategy handled the merge.
Exit code: 2


Testing 0c168775709faa74c1b87f1e61046e0c51ade7f3 Merge upstream 2.6.13-rc1-git1 into 'ieee80211' branch of netdev-2.6.
Starting merge...
/home/freku/local/bin/git-merge: line 286: 32357 Segmenteringsfel        git-merge-$strategy $common -- "$head_arg" "$@"
No merge strategy handled the merge.
Exit code: 2



Testing 467ca22d3371f132ee225a5591a1ed0cd518cb3d Merge with rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Starting merge...
/home/freku/local/bin/git-merge: line 286: 32702 Segmenteringsfel        git-merge-$strategy $common -- "$head_arg" "$@"
No merge strategy handled the merge.
Exit code: 2


Testing 44583d380d189095fa959ec8ba87f0cb6deb15f5 Merge uml.karaya.com:/home/jdike/linux/2.5/skas-2.5
Starting merge...
merge: warning: conflicts during merge
fatal: fatal: cache changed flush_cache();
Merging merge-test-branch with 8bf1412a4bbfc9da0224e73203172f98f987b41a
Merging:
645dbacc0c65228151b7cbcb8a977c83328cef76 Put X86_NUMAQ and X86_SUMMIT under the "Subarchitecture Type" config.
8bf1412a4bbfc9da0224e73203172f98f987b41a Forwarded ported a number of skas-related fixes from 2.4.
found 6 common ancestor(s):
170f6c8f82c198fb54f86cbef95a631eec6034af Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5
6543e917ce4a0b1702d80a3d54b3711cf936abef Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5
48277fd028606d49ed7cbfa3d70006c7701e8157 Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5
625207a1f419e3e217a0b343f12accf9d281d25b Merge jdike.stearns.org:linux/fixes-2.5
8631e9b3bd11d994fb99bc9f7451a1337cfc9487 Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5
31f3e9c005d3378db504d26e387ba6b91aa19e49 Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5
  Merging:
  170f6c8f82c198fb54f86cbef95a631eec6034af Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5
  6543e917ce4a0b1702d80a3d54b3711cf936abef Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5
  found 2 common ancestor(s):
  5e32ae7ed6f1dd53fbdd9c3540f4b1dcbcc0c5ef Linux v2.5.53
  433553bd1f42c0515fe77d9c0a93b67c2ff66030 Updated to 2.5.49, which involved fixing the calls to do_fork.
    Merging:
    5e32ae7ed6f1dd53fbdd9c3540f4b1dcbcc0c5ef Linux v2.5.53
    433553bd1f42c0515fe77d9c0a93b67c2ff66030 Updated to 2.5.49, which involved fixing the calls to do_fork.
    found 1 common ancestor(s):
    cebce9d8beb7493d5c82035db854a475f6a1ae66 Linux v2.5.49
    Auto-merging arch/um/kernel/sys_call_table.c
    Auto-merging arch/um/sys-i386/Makefile
  Auto-merging arch/um/kernel/signal_kern.c
  Auto-merging arch/um/kernel/syscall_kern.c
  Removing arch/um/ptproxy/Makefile
  Merging:
  virtual merged tree
  48277fd028606d49ed7cbfa3d70006c7701e8157 Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5
  found 1 common ancestor(s):
  5e32ae7ed6f1dd53fbdd9c3540f4b1dcbcc0c5ef Linux v2.5.53
  Merging:
  virtual merged tree
  625207a1f419e3e217a0b343f12accf9d281d25b Merge jdike.stearns.org:linux/fixes-2.5
  found 1 common ancestor(s):
  5e32ae7ed6f1dd53fbdd9c3540f4b1dcbcc0c5ef Linux v2.5.53
  Auto-merging arch/um/Makefile
  Removing arch/um/boot/Makefile
  Auto-merging arch/um/drivers/fd.c
  Auto-merging arch/um/drivers/port_kern.c
  CONFLICT (content): Merge conflict in arch/um/drivers/port_kern.c
  Auto-merging arch/um/drivers/port_user.c
  Auto-merging arch/um/drivers/ubd_kern.c
  Auto-merging arch/um/drivers/xterm.c
  Auto-merging arch/um/kernel/helper.c
  Removing arch/um/kernel/setup.c
  Merging:
  virtual merged tree
  8631e9b3bd11d994fb99bc9f7451a1337cfc9487 Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5
  found 2 common ancestor(s):
  5e32ae7ed6f1dd53fbdd9c3540f4b1dcbcc0c5ef Linux v2.5.53
  341d04a98d72b0693909f8e8a7ef3b064f07167d Merged the get_config changes from 2.4.
    Merging:
    5e32ae7ed6f1dd53fbdd9c3540f4b1dcbcc0c5ef Linux v2.5.53
    341d04a98d72b0693909f8e8a7ef3b064f07167d Merged the get_config changes from 2.4.
    found 1 common ancestor(s):
    fc983daf8fe2318d66f416931b0f6b1e469e78e6 Linux v2.5.48
  Already uptodate!
  Merging:
  virtual merged tree
  31f3e9c005d3378db504d26e387ba6b91aa19e49 Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5
  found 1 common ancestor(s):
  5e32ae7ed6f1dd53fbdd9c3540f4b1dcbcc0c5ef Linux v2.5.53
No merge strategy handled the merge.
Exit code: 2

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: merge-recur status
  2006-08-10  6:29 ` Fredrik Kuivinen
@ 2006-08-10  7:54   ` Johannes Schindelin
  2006-08-10  8:03     ` Junio C Hamano
  0 siblings, 1 reply; 5+ messages in thread
From: Johannes Schindelin @ 2006-08-10  7:54 UTC (permalink / raw)
  To: Fredrik Kuivinen; +Cc: git, junkio

Hi,

On Thu, 10 Aug 2006, Fredrik Kuivinen wrote:

> I just want to say that you have made a great work with porting
> merge-recursive to C!

Thank you! I was feeling bad a little, because you were the creator of it, 
and I just bastardized it. But given my plans with MinGW, I needed to get 
rid of Python (it exists on Python, but has all kinds of path conversion 
problems).
 
> I ran merge-recur through a couple of test merges that I used to test
> merge-recursive with. It is mostly merge cases people have posted to
> the mailing list, but also some home made ones. For some of them I get
> segmentation faults, see the log below. The first three come from
> Linus kernel tree. The last one,
> 44583d380d189095fa959ec8ba87f0cb6deb15f5, is from Thomas Gleixner's
> historical Linux kernel repository. I haven't seen "fatal: fatal:
> cache changed flush_cache();" before...
> 
> Let me know if you can't reproduce some them.

I could reproduce already yesterday ;-) The patch "merge-recur: do not die 
unnecessarily" I sent out earlier gets rid of this error.

But yes, I want to test -recur with the linux kernel on the weekend.

Ciao,
Dscho

P.S.: Pavel, thanks for the "A dedicated programmer with good C and Python 
skills could rewrite git-merge-recursive.py in C in 2 days, I believe. Add 
a few days of bug fixing, of course." underestimation. I do not know if I 
had started fiddling with it if I had known how involved it is.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: merge-recur status
  2006-08-10  7:54   ` Johannes Schindelin
@ 2006-08-10  8:03     ` Junio C Hamano
  0 siblings, 0 replies; 5+ messages in thread
From: Junio C Hamano @ 2006-08-10  8:03 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> P.S.: Pavel, thanks for the "A dedicated programmer with good C and Python 
> skills could rewrite git-merge-recursive.py in C in 2 days, I believe. Add 
> a few days of bug fixing, of course." underestimation. I do not know if I 
> had started fiddling with it if I had known how involved it is.

It indeed _is_ involved, and not just C vs Python but the latter
being able to rely on multiple processes without worrying about
state clean-ups.

I am quite impressed by and happy with the merge-recur work.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-08-10  8:03 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-09 21:02 merge-recur status Johannes Schindelin
2006-08-09 21:18 ` Junio C Hamano
2006-08-10  6:29 ` Fredrik Kuivinen
2006-08-10  7:54   ` Johannes Schindelin
2006-08-10  8:03     ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).