All of lore.kernel.org
 help / color / mirror / Atom feed
* Upgrade to 1.5.0 utility
@ 2007-03-14  6:16 Shawn O. Pearce
  0 siblings, 0 replies; only message in thread
From: Shawn O. Pearce @ 2007-03-14  6:16 UTC (permalink / raw)
  To: git

Yesterday on #git DrNick wanted a script to update a pre-1.5.0
Git repository to be like a 1.5.0 (and later) style repository.

This basically means rewriting the remotes into .git/config, setting
up wildcard tracking branches under refs/remotes and deleting the
old tracking branches from the refs/heads namespace.

Much earlier I had cobbled together a short shell script that does
this for a *working directory repository*.  Please don't use it on
a bare repository, at least not without editing, as it is hardcoding
the config options.  ;-)

Here it is:

cat <<END_OF_SCRIPT >upgrade.sh
#!/bin/sh

##
## Upgrades a pre-1.5.0 repository to a 1.5.0-style layout.
## Use at your own risk.  I've used it to upgrade many of
## my own repositories, but I also know what I'm doing.  ;-)
##

sh remotes2config.sh; # from git.git/contrib

git config core.bare false
git config core.logallrefupdates true

for r in $(git remote)
do
  old="`git config --get-all remote.$r.fetch | sed s,^.*:refs/heads/,,`"
  if [ -z "$old" ]
  then
    echo "No fetch lines for $r."
    continue
  fi

  echo "Converting $r..."
  git config --replace-all remote.$r.fetch +refs/heads/*:refs/remotes/$r/*
  git fetch $r
  for r in $old
  do
    case "$r" in
    *:*) echo "Not deleting $r" ;;
    *) git branch -D $r ;;
    esac
  done
done
END_OF_SCRIPT

-- 
Shawn.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-03-14  6:16 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-14  6:16 Upgrade to 1.5.0 utility Shawn O. Pearce

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.