[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] raisin: Some git-checkout improvements



On Tue, 21 Apr 2015, George Dunlap wrote:
> 1. Switch local variables to lower-case and declare them local.

This is good.


> 2. Cloning git trees from remote repos is often a very long operation.
> Allow the user to specify a faster git cache as a prefix.
> 
> 3. At the moment you can either check out a specific changeset or
> "master", but you can't check out a different branch, because git
> doesn't always look in origin/ for the branch.  If the initial git
> checkout $tag fails, try checking out origin/$tag before giving up.

I am in two minds about this, because it is still possible for the user
to simply:

LIBVIRT_REVISION="origin/blah"


> Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
> ---
> CC: Stefano Stabellini <stefano.stabellini@xxxxxxxxxx>
> ---
>  defconfig           |  3 +++
>  lib/git-checkout.sh | 33 ++++++++++++++++++++-------------
>  2 files changed, 23 insertions(+), 13 deletions(-)
> 
> diff --git a/defconfig b/defconfig
> index d3ef283..38c7455 100644
> --- a/defconfig
> +++ b/defconfig
> @@ -35,3 +35,6 @@ QEMU_TRADITIONAL_REVISION="master"
>  SEABIOS_REVISION="master"
>  GRUB_REVISION="master"
>  LIBVIRT_REVISION="master"
> +
> +# Git prefix.  Use this if you have a git caching proxy.
> +#GIT_PREFIX=""

Are you aware that you can simply specify a directory in the URL
variable?

Also wouldn't it be possible to achieve the same goal with the GIT
environmental variable?


> diff --git a/lib/git-checkout.sh b/lib/git-checkout.sh
> index 2ca8f25..b033504 100755
> --- a/lib/git-checkout.sh
> +++ b/lib/git-checkout.sh
> @@ -1,32 +1,39 @@
>  #!/usr/bin/env bash
>  
>  function git-checkout() {
> +    local tree
> +    local tag
> +    local dir
> +
>      if [[ $# -lt 3 ]]
>      then
>       echo "Usage: $0 <tree> <tag> <dir>"
>       exit 1
>      fi
>  
> -    TREE=$1
> -    TAG=$2
> -    DIR=$3
> +    tree=$1
> +    tag=$2
> +    dir=$3
> +
> +    tree=${GIT_PREFIX}$tree
>  
>      set -e
>  
> -    if [[ ! -d $DIR-remote ]]
> +    if [[ ! -d $dir-remote ]]
>      then
> -     rm -rf $DIR-remote $DIR-remote.tmp
> -     mkdir -p $DIR-remote.tmp; rmdir $DIR-remote.tmp
> -     $GIT clone $TREE $DIR-remote.tmp
> -     if [[ "$TAG" ]]
> +     rm -rf $dir-remote $dir-remote.tmp
> +     mkdir -p $dir-remote.tmp; rmdir $dir-remote.tmp
> +     $GIT clone $tree $dir-remote.tmp
> +     if [[ "$tag" ]]
>       then
> -         cd $DIR-remote.tmp
> +         cd $dir-remote.tmp
>           $GIT branch -D dummy >/dev/null 2>&1 ||:
> -         $GIT checkout -b dummy $TAG
> +         $GIT checkout -b dummy $tag \
> +             || $GIT checkout -b dummy origin/$tag

XXX


>           cd ..
>       fi
> -     mv $DIR-remote.tmp $DIR-remote
> +     mv $dir-remote.tmp $dir-remote
>      fi
> -    rm -f $DIR
> -    ln -sf $DIR-remote $DIR
> +    rm -f $dir
> +    ln -sf $dir-remote $dir
>  }
> -- 
> 1.9.1
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.