On Tuesday, May 27, 2014, Christian Couder <chriscool@xxxxxxxxxxxxx> wrote: > > This script adds into contrib/ an example script to convert > grafts from an existing grafts file into replace refs using > the new --graft option of "git replace". > > While at it let's mention this new script in the > "git replace" documentation for the --graft option. > > Signed-off-by: Christian Couder <chriscool@xxxxxxxxxxxxx> > --- > Documentation/git-replace.txt | 4 +++- > contrib/convert-grafts-to-replace-refs.sh | 24 ++++++++++++++++++++++++ > 2 files changed, 27 insertions(+), 1 deletion(-) > create mode 100755 contrib/convert-grafts-to-replace-refs.sh > > diff --git a/Documentation/git-replace.txt b/Documentation/git-replace.txt > index 491875e..e1be2e6 100644 > --- a/Documentation/git-replace.txt > +++ b/Documentation/git-replace.txt > @@ -79,7 +79,9 @@ OPTIONS > content as <commit> except that its parents will be > [<parent>...] instead of <commit>'s parents. A replacement ref > is then created to replace <commit> with the newly created > - commit. > + commit. See contrib/convert-grafts-to-replace-refs.sh for an > + example script based on this option that can convert grafts to > + replace refs. > > -l <pattern>:: > --list <pattern>:: > diff --git a/contrib/convert-grafts-to-replace-refs.sh b/contrib/convert-grafts-to-replace-refs.sh > new file mode 100755 > index 0000000..2404cc6 > --- /dev/null > +++ b/contrib/convert-grafts-to-replace-refs.sh > @@ -0,0 +1,24 @@ > +#!/bin/sh > + > +# You should execute this script in the repository where you > +# want to convert grafts to replace refs. > + > +die () { > + echo >&2 "$@" > + exit 1 > +} > + > +GRAFTS_FILE="${GIT_DIR:-.git}/info/grafts" > + > +test -f "$GRAFTS_FILE" || die "Could not find graft file: '$GRAFTS_FILE'" > + > +grep '^[^# ]' "$GRAFTS_FILE" | while read definition > +do > + test -n "$definition" && { > + echo "Converting: $definition" > + git replace --graft $definition || die "Convertion failed for: $definition" s/Convertion/Conversion/ > + } > +done > + > +echo "Success! All the grafts in '$GRAFTS_FILE' have been converted to replace refs!" > +echo "You should now move away or delete the grafts file: '$GRAFTS_FILE'" Rather than merely giving advice, would it make sees for the script rename the file (adding .bak or some such) and report that it did so? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html