Giter VIP home page Giter VIP logo

git-changemail's Introduction

git-changemail

Replace an user from the repo.

Background

I've had so many headaches about authors and committers, that finally I managed to built this script.

read this for real stories about people collaborating on git.

Installation

Download and symlink to your path

$ git clone https://github.com/albfan/git-changemail 
$ cd git-changemail
$ ln -s $PWD/git-changemail ~/bin/

Alternatively you can install system wide:

./autogen.sh --prefix /usr
make
sudo make install

Usage

git changemail or git changemail -h must show you how to use it

Examples

Change author matchings on current branch

$ git changemail -a [email protected] -n newname -m [email protected]

Change author and committer matchings on <branch> and <branch2>. Pass -f to filter-branch to allow rewriting backups

$ git changemail -b [email protected] -n newname -m [email protected] -- -f <branch> <branch2>

Show existing users on repo

$ git changemail --show-both

Tips

  • Consider to use git-backup-clean as git-change-mail uses filter-branch to operate and that lefts a backup on refs/original/refs/heads/master

  • if everything goes wrong issue:

    $ git reset --hard refs/original/refs/heads/master

Also remember git reflog is your friend

git-changemail's People

Contributors

albfan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

git-changemail's Issues

Add an --all option

As examples shows:

$ git changemail -b [email protected] -n newname -m [email protected] -- -f <branch> <branch2>

to affect more than one branch at time a complex trick must be typed. That's far from final user expectation.

  • add --all option to rewrite all
  • allow unknow parameters to be interpret as branches to rewrite
  • Manage backup cleanings between operations (mimic by now with --force or -f)

You can not specify a name with spaces on the -n parameter, take 2

This is issue #1, take 2:

> git changemail -b [email protected] -m [email protected] -n 'Peter Valdemar Mørch' .
fatal: ambiguous argument 'Valdemar': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

The problem is in these lines in the script:

if [ "'$OLD_AUTHOR_EMAIL'" != "" ] && [ "$GIT_AUTHOR_EMAIL" = "'$OLD_AUTHOR_EMAIL'" ]
then
    an="'$NEW_AUTHOR_NAME'"
    am="'$NEW_AUTHOR_EMAIL'"
fi

Since $NEW_AUTHOR_NAME does contain spaces, the '$VAR' trick to put the contents of $VAR into the script argument to git filter-branch isn't going to work. Sorry, I don't have a better idea, but this is buggy. #1 only changed the parameters to show_change, but didn't actually fix the problem as far as I can see.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.