From: Junio C Hamano Date: Wed, 14 Dec 2005 08:37:10 GMT Subject: Re: new file leaked onto release branch Message-ID: <7v3bkw2hxl.fsf@assigned-by-dhcp.cox.net> In-Reply-To: <200512140257.03975.len.brown@intel.com> Len Brown writes: > Somehow a new file leaked from my "acpica" branch onto my "release" branch > without me pulling "acpica" into "release". I'll take a look at your "broken" branch later today (but will go to bed first ;-), so please leave it around. > I package up a tar-file for the remote machines with > git-tar-tree $BRANCH $REPO | gzip -1 > $TARFILE > But I still need to generate a patch containing all the local > changes that I haven't checked into git yet. Let me understand what you have correctly: You have the latest commit, changes needed to be tested in working tree, and index is somewhere in-between, because of "git-update-index --add" you did for patch generation; but ideally you would want to keep HEAD and index in sync. And you need a way to do the above tar-tree + patch equivanent to move what you have in your working tree to other machines for pre-commit testing. Some random thoughts on ways to do it. (1) NFS with "make O=dir/to/store/output/files/"? (2) Do you have git on other build boxes? Perhaps mainbox$ edit on "acpica" branch mainbox$ git checkout -b build-test ;# branch from it mainbox$ git add some files mainbox$ git commit -a -m "Build test $(date)" ;# take all mainbox$ ssh i386box i386box$ git pull mainbox:/home/lnx/.git build-test Fast forward. i386box$ make ;# happy mainbox$ git checkout acpica ; git pull . build-test ;# fast forward (3) Tarball approach, but taking the local modifications along as well: mainbox$ git update-index all-changed-paths-not-just-add mainbox$ git-tar-tree $(git-write-tree) $REPO | gzip >$TARFILE mainbox$ git reset ;# unregisters all mods since HEAD from index mainbox$ scp $TARFILE i386box:/home/lnx/ I suspect the last one is the least disruptive to your existing workflow.