* 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
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).