On Tue, Oct 18, 2016 at 04:27:05PM +0300, Jani Nikula wrote:
> On Tue, 18 Oct 2016, Daniel Vetter <daniel.vet...@ffwll.ch> wrote:
> > The goals here are multiple:
> > - simpler configuration through autodetection
> > - allows seamless upgrading to git worktree for the aux checkouts
> > - eventually I want to split up drm-misc into a separate remote ...
> >
> > And yes this is just a start.
> >
> > v2: Print errors to stderr, otherwise they can't be seen when directly
> > assigning the result of get_remote_name to a variable.
> >
> > Signed-off-by: Daniel Vetter <daniel.vet...@intel.com>
> > ---
> >  dim | 112 
> > +++++++++++++++++++++++++++++++++++---------------------------------
> >  1 file changed, 58 insertions(+), 54 deletions(-)
> >
> > diff --git a/dim b/dim
> > index 2601bb7dbbad..90eb553c6575 100755
> > --- a/dim
> > +++ b/dim
> > @@ -192,6 +192,24 @@ if [[ "$((`date +%s` % 100))" -eq "0" ]] ; then
> >          dim_uptodate
> >  fi
> >  
> > +function get_remote_name
> > +{
> > +   local remote_url=$1
> > +
> > +   local remote=`git remote -v | grep $remote_url | \
> > +           head -n1 | sed -e 's/^\(.*\)\t.*/\1/'`
> 
> 'cut -f 1' seems cleaner than the sed.

Or just replace the lot with awk?

> 
> > +
> > +   if [[ $remote == "" ]] ; then
> 
> I'd prefer
> 
>       if [[ -z "$remote" ]]; then
> 
> > +           echoerr No git remote for $remote_url found in `pwd`.
> > +           echoerr Please set it up using
> > +           echoerr     $ git remote add '<name>' $remote_url
> > +           echoerr with a name of your choice.
> 
> I'm fond of wrapping the strings in double quotes. Gives me nicer
> highlighting in the editor. ;)
> 
> Otherwise seems nice.
> 
> BR,
> Jani.
> 
> > +           exit 1
> > +   fi
> > +
> > +   echo $remote
> > +}
> > +
> >  # get message id from file
> >  # $1 = file
> >  message_get_id ()
> > @@ -1044,8 +1062,36 @@ function dim_update_branches
> >     update_rerere_cache
> >  }
> >  
> > +function setup_aux_checkout # name remote
> > +{
> > +   local name=$1
> > +   local remote_url=$2
> > +   local dir=$3
> > +   local remote
> > +
> > +   echo "Setting up $dir ..."
> > +
> > +   if [ ! -d $dir ]; then
> > +           git clone --reference=$DIM_PREFIX/$DIM_DRM_INTEL/.git 
> > $remote_url $dir
> > +           cd $dir
> > +           git config remote.origin.url $remote_url
> > +           echo "$DIM_PREFIX/$DIM_DRM_INTEL/.git/objects" > 
> > .git/objects/info/alternates
> > +           git repack -a -d -l
> > +           remote=origin
> > +   else
> > +           cd $dir
> > +           remote=`get_remote_name $drm_intel_ssh`
> > +   fi
> > +   if ! git branch | grep $name > /dev/null ; then
> > +           git checkout -t $remote/$name
> > +   fi
> > +   cd ..
> > +}
> > +
> >  function dim_setup
> >  {
> > +   local remote
> > +
> >     if [ ! -d $DIM_PREFIX ]; then
> >             echo "please set up your repository directory with:"
> >             echo "    mkdir -p $DIM_PREFIX"
> > @@ -1062,76 +1108,34 @@ function dim_setup
> >             exit 1
> >     fi
> >     cd $DIM_DRM_INTEL
> > -   if ! git remote -v | grep "^origin[[:space:]]" | grep 
> > $linux_upstream_git > /dev/null; then
> > -           echo "please set up remote origin for $linux_upstream_git"
> > -           exit 1
> > -   fi
> > -   if ! git remote -v | grep "^$DIM_DRM_INTEL_REMOTE[[:space:]]" | grep 
> > $drm_intel_ssh > /dev/null; then
> > -           echo "please set up remote $DIM_DRM_INTEL_REMOTE for 
> > $drm_intel_ssh with:"
> > -           echo "    git remote add $DIM_DRM_INTEL_REMOTE $drm_intel_ssh"
> > -           echo "or update your configuration."
> > -           exit 1
> > -   fi
> > -   if ! git remote -v | grep "^$DIM_DRM_UPSTREAM_REMOTE[[:space:]]" | grep 
> > $drm_upstream_git > /dev/null; then
> > -           echo "please set up remote $DIM_DRM_UPSTREAM_REMOTE for 
> > $drm_upstream_git with:"
> > -           echo "    git remote add $DIM_DRM_UPSTREAM_REMOTE 
> > $drm_upstream_git"
> > -           echo "or update your configuration."
> > -           exit 1
> > -   fi
> > -   cd ..
> >  
> > -   echo "Setting up maintainer-tools ..."
> > -   if [ ! -d maintainer-tools ]; then
> > -           git clone --reference=$DIM_PREFIX/$DIM_DRM_INTEL/.git 
> > $drm_intel_ssh maintainer-tools
> > -   fi
> > -   cd maintainer-tools
> > -   git config remote.origin.url $drm_intel_ssh
> > -   echo "$DIM_PREFIX/$DIM_DRM_INTEL/.git/objects" > 
> > .git/objects/info/alternates
> > -   git repack -a -d -l
> > -   if ! git branch | grep maintainer-tools > /dev/null ; then
> > -           git checkout -t origin/maintainer-tools
> > -   fi
> > -   cd ..
> > +   # check remote configuration
> > +   remote=`get_remote_name $linux_upstream_git`
> > +   remote=`get_remote_name $drm_intel_ssh`
> > +   remote=`get_remote_name $drm_upstream_git`
> >  
> > -   echo "Setting up drm-intel-rerere ..."
> > -   if [ ! -d drm-intel-rerere ]; then
> > -           git clone --reference=$DIM_PREFIX/$DIM_DRM_INTEL/.git 
> > $drm_intel_ssh drm-intel-rerere
> > -   fi
> > -   cd drm-intel-rerere
> > -   git config remote.origin.url $drm_intel_ssh
> > -   echo "$DIM_PREFIX/$DIM_DRM_INTEL/.git/objects" > 
> > .git/objects/info/alternates
> > -   git repack -a -d -l
> > -   if ! git branch | grep rerere-cache > /dev/null ; then
> > -           git checkout -t origin/rerere-cache
> > -   fi
> >     cd ..
> >  
> > -   echo "Setting up drm-intel-nightly ..."
> > -   if [ ! -d drm-intel-nightly ]; then
> > -           git clone --reference=$DIM_PREFIX/$DIM_DRM_INTEL/.git 
> > $drm_intel_ssh drm-intel-nightly
> > -   fi
> > +   setup_aux_checkout maintainer-tools $drm_intel_ssh maintainer-tools
> > +
> > +   setup_aux_checkout rerere-cache $drm_intel_ssh drm-intel-rerere
> > +
> > +   setup_aux_checkout drm-intel-nightly $drm_intel_ssh drm-intel-nightly
> >     cd drm-intel-nightly
> > -   mkdir -p .git/rr-cache
> > -   git config remote.origin.url $drm_intel_ssh
> > -   echo "$DIM_PREFIX/$DIM_DRM_INTEL/.git/objects" > 
> > .git/objects/info/alternates
> > -   git repack -a -d -l
> > -   if ! git branch | grep drm-intel-nightly > /dev/null ; then
> > -           git checkout -t origin/drm-intel-nightly
> > -   fi
> >     if git remote | grep drm-upstream > /dev/null ; then
> >             git config remote.drm-upstream.url $drm_upstream_git
> >     else
> > -           git remote add drm-upstream $drm_upstream_git
> > +           remote=`get_remote_name $drm_upstream_git`
> >     fi
> >     if git remote | grep sound-upstream > /dev/null ; then
> >             git config remote.sound-upstream.url $sound_upstream_git
> >     else
> > -           git remote add sound-upstream $sound_upstream_git
> > +           remote=`get_remote_name $sound_upstream_git`
> >     fi
> >     if git remote | grep driver-core-upstream > /dev/null ; then
> >             git config remote.driver-core-upstream.url 
> > $driver_core_upstream_git
> >     else
> > -           git remote add driver-core-upstream $driver_core_upstream_git
> > +           remote=`get_remote_name $driver_core_upstream_git`
> >     fi
> >  
> >     echo "dim setup successfully completed!"
> 
> -- 
> Jani Nikula, Intel Open Source Technology Center
> _______________________________________________
> dri-devel mailing list
> dri-de...@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to