view .shell.d/50.git_functions.sh @ 234:0cd241f35c40

git-functions: add a couple of handy aliases
author Augie Fackler <durin42@gmail.com>
date Sun, 28 Nov 2010 18:30:26 -0600
parents 0590f34b92a0
children
line wrap: on
line source

# git utility functions

function git_next_unmerged_file() {
  git status | egrep '(unmerged|both modified)' | head -n 1 | sed 's/.*:   //'
}
alias git-next-unmerged-file=git_next_unmerged_file

function git_repack_all() {
  for repo in $(find . | \
      grep '/objects/pack/' | \
      sed -e 's%\.git/objects/pack/.*%%' | \
      sed -e 's%git/objects/pack/.*%git%' | sort | uniq) ; do
    pushd $repo
    git repack -ad --window 100
    git gc --prune="`date`"
    popd
  done
}
alias git-repack-all=git_repack_all

function git_fsck_all() {
  for repo in $(find . | \
      grep '/objects/pack/' | \
      sed -e 's%\.git/objects/pack/.*%%' | \
      sed -e 's%git/objects/pack/.*%git%' | sort | uniq) ; do
    pushd $repo
    git fsck
    popd
  done
}
alias git-fsck-all=git_fsck_all