From patchwork Tue Jun 15 08:42:41 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: committed: [Re: [PATCH] gcc_update: support updating a git clone] X-Patchwork-Submitter: Bernhard Reutner-Fischer X-Patchwork-Id: 55618 Message-Id: <20100615084241.GA24914@mx.loc> To: gcc-patches@gcc.gnu.org Cc: Paolo Bonzini , Tobias Burnus Date: Tue, 15 Jun 2010 10:42:41 +0200 From: Bernhard Reutner-Fischer List-Id: On Tue, May 18, 2010 at 11:11:32PM +0200, Bernhard Reutner-Fischer wrote: >On Sat, Mar 13, 2010 at 11:54:35AM +0100, Bernhard Reutner-Fischer wrote: >>contrib/ChangeLog: >> >>2010-03-13 Bernhard Reutner-Fischer >> >> * gcc_update: Support updating a git clone. >> >>Ok for trunk? > >Revised patch attached, Changelog remains the same. >Ok for trunk? Incorporated Paolo's comments in http://gcc.gnu.org/ml/gcc-patches/2010-06/msg00143.html and committed the attached as revision 160774. thanks, Index: contrib/gcc_update =================================================================== --- contrib/gcc_update (revision 160773) +++ contrib/gcc_update (working copy) @@ -245,8 +245,13 @@ esac +is_git=0 # Check whether this indeed looks like a local SVN tree. -if [ ! -d .svn ]; then +if [ -d .git ]; then + GCC_GIT=${GCC_GIT-${GIT-git}} + GCC_SVN="true -" + is_git=1 +elif [ ! -d .svn ]; then echo "This does not seem to be a GCC SVN tree!" exit fi @@ -258,6 +263,7 @@ set -- $UPDATE_OPTIONS ${1+"$@"} fi +if [ $is_git -eq 0 ]; then chat "Updating SVN tree" $GCC_SVN ${silent+-q} --non-interactive update ${1+"$@"} @@ -283,4 +289,27 @@ echo "[$branch revision $revision]" > gcc/REVISION +else + chat "Updating GIT tree" + $GCC_GIT diff --quiet --exit-code HEAD + if [ $? -ne 0 ]; then + echo "Attempting to update a dirty git tree!" >&2 + echo "Commit or stash your changes first and retry." >&2 + exit 1 + fi + $GCC_GIT pull ${silent+-q} --rebase ${1+"$@"} + if [ $? -ne 0 ]; then + (touch_files_reexec) + echo "git pull of full tree failed." >&2 + exit 1 + fi + rm -f LAST_UPDATED gcc/REVISION + revision=`$GCC_GIT log -n1 --pretty=%p:%t:%H` + branch=`$GCC_GIT name-rev --name-only HEAD || :` + { + date + echo "`TZ=UTC date` (revision $revision)" + } > LAST_UPDATED + echo "[$branch revision $revision]" > gcc/REVISION +fi touch_files_reexec