From mboxrd@z Thu Jan 1 00:00:00 1970 From: James Bottomley Subject: Re: SCSI trees, merges and git status Date: Mon, 18 Apr 2005 21:17:51 -0500 Message-ID: <1113877071.4998.111.camel@mulgrave> References: <1113856118.4998.70.camel@mulgrave> <1113866092.4998.92.camel@mulgrave> <1113869594.4998.103.camel@mulgrave> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Return-path: Received: from stat16.steeleye.com ([209.192.50.48]:39810 "EHLO hancock.sc.steeleye.com") by vger.kernel.org with ESMTP id S261279AbVDSCSD (ORCPT ); Mon, 18 Apr 2005 22:18:03 -0400 In-Reply-To: Sender: linux-scsi-owner@vger.kernel.org List-Id: linux-scsi@vger.kernel.org To: Linus Torvalds Cc: git@vger.kernel.org, SCSI Mailing List On Mon, 2005-04-18 at 17:29 -0700, Linus Torvalds wrote: > 2.6.12 is some time away, if for no other reason than the fact that this > SCM thing has obviously eaten two weeks of my time. So I'd be inclined to > chalk this up as a "learning experience" with git, and just go forward. Fair enough. If you pull from rsync://www.parisc-linux.org/~jejb/scsi-misc-2.6.git That will pull in the rest of my scsi-misc-2.6 tree (which includes all of the rc fixes). I've done a test pull and merge and checked the resulting against BK, so hopefully there should be no more screw ups. Doing this exposed two bugs in your merge script: 1) It doesn't like a completely new directory (the misc tree contains a new drivers/scsi/lpfc) 2) the merge testing logic is wrong. You only want to exit 1 if the merge fails. James git-merge-one-file-script: bec009e2c37bacc9e6f9cad1cfa5fd56752c7bf1 --- a/git-merge-one-file-script +++ b/git-merge-one-file-script @@ -13,6 +13,11 @@ # do any merges that migth change the tree layout # +# if the directory is newly added in a branch, it might not exist +# in the current tree +dir=$(dirname "$4") +mkdir -p "$dir" + case "${1:-.}${2:-.}${3:-.}" in # # deleted in both, or deleted in one and unchanged in the other @@ -40,7 +45,11 @@ case "${1:-.}${2:-.}${3:-.}" in orig=$(unpack-file $1) src1=$(unpack-file $2) src2=$(unpack-file $3) - merge "$src2" "$orig" "$src1" || echo Leaving conflict merge in $src2 && exit 1 + merge "$src2" "$orig" "$src1" + if [ $? -ne 0 ]; then + echo Leaving conflict merge in $src2 + exit 1 + fi cp "$src2" "$4" && update-cache --add -- "$4" && exit 0 ;;