{"thread":{"id":"5189","subject":"merge-recur status","startedAt":"2006-08-09T21:02:51Z","lastAt":"2006-08-10T08:03:20Z","messageCount":5,"participants":["Johannes Schindelin","Junio C Hamano","Fredrik Kuivinen"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"25053","messageId":"Pine.LNX.4.63.0608092232000.13885@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"5189","inReplyTo":null,"subject":"merge-recur status","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-08-09T21:02:51Z","receivedAt":"2006-08-09T21:02:51Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nwith my last patches, I tested merge-recur on 'next' (46faaaf8) by \ncomparing the index after -recur and -recursive, respectively.\n\nAt this stage, there are 1017 merges with exactly two parents (which is \nthe only type of merge -recursive can handle).\n\nFor all but 9 of them, the indices where identical. The reason for those 9 \nto differ: the order of the merge-bases. -recursive does its own thing \n(set intersection after traversing the commits by hand, probably in \ntopological order), whereas with the last patches, -recur orders them by \ndecreasing date.\n\nThe 9 cases are:\n\n52bc0e29: 1 better\na5c8a98c: 1 better, 2 identical\n63bccad3: 1 identical\ndcaad49c: 3 identical\n7f2d5cb5: 3 identical\nc2b9e699: 2 identical\n4cc0b8a4: 2 identical\nd2b9b5f5: 1 identical\n41094b8e: worse\n\nwhere\n\n- \"1 better\" means that -recursive has a conflicting hunk, where \n  -recur resolves it (it is identical with the commit),\n\n- \"1 identical\" means that there were multiply conflicting hunks (meaning \n  that merging two merge-bases already conflicted, and another conflict \n  came on top), and the versions of -recursive and -recur differ only in \n  the order of the conflict nesting, and\n\n- \"worse\" means that the merge of 859ab4c and 061ad5f, which _should_ have \n  resulted in 41094b8e (as with -recursive) resulted in a\n\n  \"fatal: Entry 'epoch.c' would be overwritten by merge. Cannot merge.\"\n\n  It might have its reason in the fact that 859ab4c and 061ad5f have\n  8 (!) merge bases.\n\nNow, on average, -recur takes 0.1 seconds on average, spending only 9.9% \nof what -recursive takes (on average). So I am happy with the speed.\n\nI think -recur is really really close to being trustworthy, _but_ I do not \nunderstand the reason behind the error. It happens in line 614 of \nunpack-trees.c, where the \"index\" contains epoch.c, and \"index\" and \n\"remote\" are identical, but \"head\" is empty.\n\nI tried to wrap my head over it, but seem unable to do so. Also, I do not \nfind the case 14ALT (which is mentioned in unpack-trees.c:603) in \nDocumentation/technical/trivial-merge.txt.\n\nHelp?\n\nCiao,\nDscho\n"},{"id":"25055","messageId":"7vy7tx1uc1.fsf@assigned-by-dhcp.cox.net","threadId":"5189","inReplyTo":"Pine.LNX.4.63.0608092232000.13885@wbgn013.biozentrum.uni-wuerzburg.de","subject":"Re: merge-recur status","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-08-09T21:18:38Z","receivedAt":"2006-08-09T21:18:38Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n> I tried to wrap my head over it, but seem unable to do so. Also, I do not \n> find the case 14ALT (which is mentioned in unpack-trees.c:603) in \n> Documentation/technical/trivial-merge.txt.\n\nThat is t/t1000-read-tree-m-3way.sh case 14.  The current\nsemantics for case 14 used to be called ALT until 3e03aaf\nsimplified the table to reflect the reality, because the\n\"alternative\" semantics had been in use for quite some time\nalready back then.\n\nI'd like to take a look at 41094b8e, the real trouble that is\ncausing you grief, sometime later, but I'm currently pondering\nif the one I tag should be called 1.4.2 or 1.4.2-rc4 ;-).\n"},{"id":"25063","messageId":"20060810062914.GA5192@c165.ib.student.liu.se","threadId":"5189","inReplyTo":"Pine.LNX.4.63.0608092232000.13885@wbgn013.biozentrum.uni-wuerzburg.de","subject":"Re: merge-recur status","fromName":"Fredrik Kuivinen","fromEmail":"freku045@student.liu.se","sentAt":"2006-08-10T06:29:14Z","receivedAt":"2006-08-10T06:29:14Z","isPatch":false,"sender":{"key":"frekui@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13770967?v=4"},"body":"Hi,\n\nI just want to say that you have made a great work with porting\nmerge-recursive to C!\n\nI ran merge-recur through a couple of test merges that I used to test\nmerge-recursive with. It is mostly merge cases people have posted to\nthe mailing list, but also some home made ones. For some of them I get\nsegmentation faults, see the log below. The first three come from\nLinus kernel tree. The last one,\n44583d380d189095fa959ec8ba87f0cb6deb15f5, is from Thomas Gleixner's\nhistorical Linux kernel repository. I haven't seen \"fatal: fatal:\ncache changed flush_cache();\" before...\n\nLet me know if you can't reproduce some them.\n\n- Fredrik\n\n\n\nTesting 84ffa747520edd4556b136bdfc9df9eb1673ce12 Merge from-linus to-akpm\nStarting merge...\nMerging merge-test-branch with 81065e2f415af6c028eac13f481fb9e60a0b487b\nMerging:\n702c7e7626deeabb057b6f529167b65ec2eefbdb [ACPI] fix ia64 build issues resulting from Lindent and merge\n81065e2f415af6c028eac13f481fb9e60a0b487b [PATCH] zd1201 kmalloc size fix\nfound 2 common ancestor(s):\n30e332f3307e9f7718490a706e5ce99f0d3a7b26 [ACPI] re-enable platform-specific hotkey drivers by default\n3edea4833a1efcd43e1dff082bc8001fdfe74b34 [PATCH] intelfb/fbdev: Save info->flags in a local variable\n  Merging:\n  30e332f3307e9f7718490a706e5ce99f0d3a7b26 [ACPI] re-enable platform-specific hotkey drivers by default\n  3edea4833a1efcd43e1dff082bc8001fdfe74b34 [PATCH] intelfb/fbdev: Save info->flags in a local variable\n  found 1 common ancestor(s):\n  d4ab025b73a2d10548e17765eb76f3b7351dc611 [ACPI] delete Warning: Encountered executable code at module level, [AE_NOT_CONFIGURED]\n  Removing Documentation/DocBook/scsidrivers.tmpl\n  Removing Documentation/dvb/README.dibusb\n  Auto-merging Documentation/kernel-parameters.txt\n  Removing Documentation/networking/wanpipe.txt\n  Removing arch/arm/kernel/arch.c\n  Removing arch/arm/lib/longlong.h\n  Removing arch/arm/lib/udivdi3.c\n  Removing arch/arm/mach-omap/Kconfig\n  Removing arch/arm/mach-omap/Makefile\n  Removing arch/arm/mach-omap/common.c\n  Removing arch/mips/vr41xx/common/giu.c\n  Removing arch/ppc/boot/utils/addSystemMap.c\n  Removing arch/ppc/syslib/ppc4xx_kgdb.c\n  Removing arch/ppc64/boot/mknote.c\n  Removing arch/ppc64/boot/piggyback.c\n  Removing arch/ppc64/kernel/XmPciLpEvent.c\n  Removing arch/ppc64/kernel/iSeries_pci_reset.c\n  Removing arch/um/kernel/skas/time.c\n  Removing arch/um/kernel/tt/time.c\n  Removing arch/um/kernel/tt/unmap.c\n  Auto-merging drivers/acpi/osl.c\n  Removing drivers/base/class_simple.c\n  Removing drivers/ide/cris/ide-v10.c\n  Removing drivers/input/gameport/cs461x.c\n  Removing drivers/input/gameport/vortex.c\n  Removing drivers/isdn/hisax/enternow.h\n  Removing drivers/isdn/hisax/st5481_hdlc.c\n  Removing drivers/isdn/hisax/st5481_hdlc.h\n  Removing drivers/isdn/sc/debug.c\n  Removing drivers/macintosh/macserial.c\n  Removing drivers/macintosh/macserial.h\n  Removing drivers/media/dvb/b2c2/skystar2.c\n  Removing drivers/media/dvb/dibusb/Kconfig\n  Removing drivers/media/dvb/dibusb/Makefile\n  Removing drivers/media/dvb/dibusb/dvb-dibusb-core.c\n  Removing drivers/media/dvb/dibusb/dvb-dibusb-dvb.c\n  Removing drivers/media/dvb/dibusb/dvb-dibusb-fe-i2c.c\n  Removing drivers/media/dvb/dibusb/dvb-dibusb-firmware.c\n  Removing drivers/media/dvb/dibusb/dvb-dibusb-remote.c\n  Removing drivers/media/dvb/dibusb/dvb-dibusb-usb.c\n  Removing drivers/media/dvb/dibusb/dvb-dibusb.h\n  Removing drivers/mtd/maps/db1550-flash.c\n  Removing drivers/mtd/maps/db1x00-flash.c\n  Removing drivers/mtd/maps/elan-104nc.c\n  Removing drivers/mtd/maps/pb1550-flash.c\n  Removing drivers/mtd/maps/pb1xxx-flash.c\n  Removing drivers/mtd/nand/tx4925ndfmc.c\n  Removing drivers/mtd/nand/tx4938ndfmc.c\n  Removing drivers/net/fmv18x.c\n  Removing drivers/net/sk_g16.c\n  Removing drivers/net/sk_g16.h\n  Removing drivers/net/skfp/lnkstat.c\n  Removing drivers/net/skfp/smtparse.c\n  Removing drivers/net/smc-mca.h\n  Removing drivers/pci/hotplug/acpiphp_pci.c\n  Removing drivers/pci/hotplug/acpiphp_res.c\n  Removing drivers/scsi/pci2000.c\n  Removing drivers/scsi/pci2220i.c\n  Removing drivers/scsi/pci2220i.h\n  Removing drivers/scsi/psi_dale.h\n  Removing drivers/scsi/psi_roy.h\n  Removing drivers/serial/bast_sio.c\n  Removing drivers/usb/atm/usb_atm.c\n  Removing drivers/usb/atm/usb_atm.h\n  Removing fs/freevxfs/vxfs_kcompat.h\n  Removing include/asm-m32r/m32102peri.h\n  Removing include/asm-ppc/fsl_ocp.h\n  Removing include/asm-ppc64/iSeries/HvCallCfg.h\n  Removing include/asm-ppc64/iSeries/LparData.h\n  Removing include/asm-ppc64/iSeries/XmPciLpEvent.h\n  Removing include/asm-ppc64/iSeries/iSeries_proc.h\n  Removing include/linux/ioc4_common.h\n  Removing include/linux/netfilter_ipv4/lockhelp.h\n  Removing include/linux/pci-dynids.h\n  Removing include/linux/xattr_acl.h\n  Removing net/ipv4/utils.c\n  Removing sound/pcmcia/vx/vx_entry.c\n  Removing sound/pcmcia/vx/vxp/home/freku/local/bin/git-merge: line 286: 32288 Segmenteringsfel        git-merge-$strategy $common -- \"$head_arg\" \"$@\"\nNo merge strategy handled the merge.\nExit code: 2\n\n\nTesting 0c168775709faa74c1b87f1e61046e0c51ade7f3 Merge upstream 2.6.13-rc1-git1 into 'ieee80211' branch of netdev-2.6.\nStarting merge...\n/home/freku/local/bin/git-merge: line 286: 32357 Segmenteringsfel        git-merge-$strategy $common -- \"$head_arg\" \"$@\"\nNo merge strategy handled the merge.\nExit code: 2\n\n\n\nTesting 467ca22d3371f132ee225a5591a1ed0cd518cb3d Merge with rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git\nStarting merge...\n/home/freku/local/bin/git-merge: line 286: 32702 Segmenteringsfel        git-merge-$strategy $common -- \"$head_arg\" \"$@\"\nNo merge strategy handled the merge.\nExit code: 2\n\n\nTesting 44583d380d189095fa959ec8ba87f0cb6deb15f5 Merge uml.karaya.com:/home/jdike/linux/2.5/skas-2.5\nStarting merge...\nmerge: warning: conflicts during merge\nfatal: fatal: cache changed flush_cache();\nMerging merge-test-branch with 8bf1412a4bbfc9da0224e73203172f98f987b41a\nMerging:\n645dbacc0c65228151b7cbcb8a977c83328cef76 Put X86_NUMAQ and X86_SUMMIT under the \"Subarchitecture Type\" config.\n8bf1412a4bbfc9da0224e73203172f98f987b41a Forwarded ported a number of skas-related fixes from 2.4.\nfound 6 common ancestor(s):\n170f6c8f82c198fb54f86cbef95a631eec6034af Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5\n6543e917ce4a0b1702d80a3d54b3711cf936abef Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5\n48277fd028606d49ed7cbfa3d70006c7701e8157 Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5\n625207a1f419e3e217a0b343f12accf9d281d25b Merge jdike.stearns.org:linux/fixes-2.5\n8631e9b3bd11d994fb99bc9f7451a1337cfc9487 Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5\n31f3e9c005d3378db504d26e387ba6b91aa19e49 Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5\n  Merging:\n  170f6c8f82c198fb54f86cbef95a631eec6034af Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5\n  6543e917ce4a0b1702d80a3d54b3711cf936abef Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5\n  found 2 common ancestor(s):\n  5e32ae7ed6f1dd53fbdd9c3540f4b1dcbcc0c5ef Linux v2.5.53\n  433553bd1f42c0515fe77d9c0a93b67c2ff66030 Updated to 2.5.49, which involved fixing the calls to do_fork.\n    Merging:\n    5e32ae7ed6f1dd53fbdd9c3540f4b1dcbcc0c5ef Linux v2.5.53\n    433553bd1f42c0515fe77d9c0a93b67c2ff66030 Updated to 2.5.49, which involved fixing the calls to do_fork.\n    found 1 common ancestor(s):\n    cebce9d8beb7493d5c82035db854a475f6a1ae66 Linux v2.5.49\n    Auto-merging arch/um/kernel/sys_call_table.c\n    Auto-merging arch/um/sys-i386/Makefile\n  Auto-merging arch/um/kernel/signal_kern.c\n  Auto-merging arch/um/kernel/syscall_kern.c\n  Removing arch/um/ptproxy/Makefile\n  Merging:\n  virtual merged tree\n  48277fd028606d49ed7cbfa3d70006c7701e8157 Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5\n  found 1 common ancestor(s):\n  5e32ae7ed6f1dd53fbdd9c3540f4b1dcbcc0c5ef Linux v2.5.53\n  Merging:\n  virtual merged tree\n  625207a1f419e3e217a0b343f12accf9d281d25b Merge jdike.stearns.org:linux/fixes-2.5\n  found 1 common ancestor(s):\n  5e32ae7ed6f1dd53fbdd9c3540f4b1dcbcc0c5ef Linux v2.5.53\n  Auto-merging arch/um/Makefile\n  Removing arch/um/boot/Makefile\n  Auto-merging arch/um/drivers/fd.c\n  Auto-merging arch/um/drivers/port_kern.c\n  CONFLICT (content): Merge conflict in arch/um/drivers/port_kern.c\n  Auto-merging arch/um/drivers/port_user.c\n  Auto-merging arch/um/drivers/ubd_kern.c\n  Auto-merging arch/um/drivers/xterm.c\n  Auto-merging arch/um/kernel/helper.c\n  Removing arch/um/kernel/setup.c\n  Merging:\n  virtual merged tree\n  8631e9b3bd11d994fb99bc9f7451a1337cfc9487 Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5\n  found 2 common ancestor(s):\n  5e32ae7ed6f1dd53fbdd9c3540f4b1dcbcc0c5ef Linux v2.5.53\n  341d04a98d72b0693909f8e8a7ef3b064f07167d Merged the get_config changes from 2.4.\n    Merging:\n    5e32ae7ed6f1dd53fbdd9c3540f4b1dcbcc0c5ef Linux v2.5.53\n    341d04a98d72b0693909f8e8a7ef3b064f07167d Merged the get_config changes from 2.4.\n    found 1 common ancestor(s):\n    fc983daf8fe2318d66f416931b0f6b1e469e78e6 Linux v2.5.48\n  Already uptodate!\n  Merging:\n  virtual merged tree\n  31f3e9c005d3378db504d26e387ba6b91aa19e49 Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5\n  found 1 common ancestor(s):\n  5e32ae7ed6f1dd53fbdd9c3540f4b1dcbcc0c5ef Linux v2.5.53\nNo merge strategy handled the merge.\nExit code: 2\n"},{"id":"25067","messageId":"Pine.LNX.4.63.0608100949250.13885@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"5189","inReplyTo":"20060810062914.GA5192@c165.ib.student.liu.se","subject":"Re: merge-recur status","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-08-10T07:54:55Z","receivedAt":"2006-08-10T07:54:55Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Thu, 10 Aug 2006, Fredrik Kuivinen wrote:\n\n> I just want to say that you have made a great work with porting\n> merge-recursive to C!\n\nThank you! I was feeling bad a little, because you were the creator of it, \nand I just bastardized it. But given my plans with MinGW, I needed to get \nrid of Python (it exists on Python, but has all kinds of path conversion \nproblems).\n \n> I ran merge-recur through a couple of test merges that I used to test\n> merge-recursive with. It is mostly merge cases people have posted to\n> the mailing list, but also some home made ones. For some of them I get\n> segmentation faults, see the log below. The first three come from\n> Linus kernel tree. The last one,\n> 44583d380d189095fa959ec8ba87f0cb6deb15f5, is from Thomas Gleixner's\n> historical Linux kernel repository. I haven't seen \"fatal: fatal:\n> cache changed flush_cache();\" before...\n> \n> Let me know if you can't reproduce some them.\n\nI could reproduce already yesterday ;-) The patch \"merge-recur: do not die \nunnecessarily\" I sent out earlier gets rid of this error.\n\nBut yes, I want to test -recur with the linux kernel on the weekend.\n\nCiao,\nDscho\n\nP.S.: Pavel, thanks for the \"A dedicated programmer with good C and Python \nskills could rewrite git-merge-recursive.py in C in 2 days, I believe. Add \na few days of bug fixing, of course.\" underestimation. I do not know if I \nhad started fiddling with it if I had known how involved it is.\n"},{"id":"25071","messageId":"7vwt9hvwzb.fsf@assigned-by-dhcp.cox.net","threadId":"5189","inReplyTo":"Pine.LNX.4.63.0608100949250.13885@wbgn013.biozentrum.uni-wuerzburg.de","subject":"Re: merge-recur status","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-08-10T08:03:20Z","receivedAt":"2006-08-10T08:03:20Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n> P.S.: Pavel, thanks for the \"A dedicated programmer with good C and Python \n> skills could rewrite git-merge-recursive.py in C in 2 days, I believe. Add \n> a few days of bug fixing, of course.\" underestimation. I do not know if I \n> had started fiddling with it if I had known how involved it is.\n\nIt indeed _is_ involved, and not just C vs Python but the latter\nbeing able to rely on multiple processes without worrying about\nstate clean-ups.\n\nI am quite impressed by and happy with the merge-recur work.\n"}]}