# HG changeset patch # User Meredith Howard # Date 1466536474 14400 # Node ID 296f4b036ae3be81cfe02dff7cb8a96ea12aa78e # Parent 1aed142faa16b724d52558fbcd1a1f49fa111cd4 move git-bre into a real command with better filename safety diff --git a/.gitconfig b/.gitconfig --- a/.gitconfig +++ b/.gitconfig @@ -31,7 +31,6 @@ ctags = "!~/.git_helpers/ctags" glog = log --graph --pretty=onelinecustom recent = !sh -c 'git for-each-ref --count=${1:-20} --sort=-committerdate --format=\"%(committerdate:short) %(refname:short)\"' "$@" - bre = !$EDITOR $@ $(git diff --name-only @{u}..) [pretty] onelinecustom = tformat:%C(magenta)%h%Creset -%C(yellow)%d%Creset %s %C(green)(%cr)%Creset %C(cyan)<%an>%Creset diff --git a/bin/git-bre b/bin/git-bre new file mode 100755 --- /dev/null +++ b/bin/git-bre @@ -0,0 +1,15 @@ +#!/bin/sh +set -eu + +# git-bre: "branch edit", run $EDITOR with a list of all files touched in this +# branch compared to upstream. Any args are passed to the editor, before the +# file list. + +CHANGED=$( + git diff --name-only @{u}.. | while read file + do + echo \'$file\' + done +) + +eval "exec $EDITOR $@ ${CHANGED:?[No files to edit]}"