Brad King <brad.king@xxxxxxxxxxx> writes: > Add a --stdin signature to read update instructions from standard input > and apply multiple ref updates together. Use an input format that > supports any update that could be specified via the command-line, > including object names like 'branch:path with space'. > > Signed-off-by: Brad King <brad.king@xxxxxxxxxxx> > --- > Documentation/git-update-ref.txt | 21 ++++++- > builtin/update-ref.c | 121 +++++++++++++++++++++++++++++++++++++- > 2 files changed, 140 insertions(+), 2 deletions(-) > > diff --git a/Documentation/git-update-ref.txt b/Documentation/git-update-ref.txt > index 0df13ff..295d0bb 100644 > --- a/Documentation/git-update-ref.txt > +++ b/Documentation/git-update-ref.txt > @@ -8,7 +8,7 @@ git-update-ref - Update the object name stored in a ref safely > SYNOPSIS > -------- > [verse] > -'git update-ref' [-m <reason>] (-d <ref> [<oldvalue>] | [--no-deref] <ref> <newvalue> [<oldvalue>]) > +'git update-ref' [-m <reason>] (-d <ref> [<oldvalue>] | [--no-deref] <ref> <newvalue> [<oldvalue>] | --stdin) > > DESCRIPTION > ----------- > @@ -58,6 +58,25 @@ archive by creating a symlink tree). > With `-d` flag, it deletes the named <ref> after verifying it > still contains <oldvalue>. > > +With `--stdin`, update-ref reads instructions from standard input and > +performs all modifications together. Empty lines are ignored. > +Each non-empty line is parsed as whitespace-separated arguments. > +Use single-quotes to enclose whitespace and backslashes and an > +unquoted backslash to escape a single quote. That is somewhat unusual. When we need to deal with arbitrary strings (like pathnames), other parts of the system usually give the user two interfaces, --stdin with and without -z, and the strings are C-quoted when run without the -z option, and terminated with NUL when run with the -z option. > +Specify updates with > +lines of the form: > + > + [--no-deref] [--] <ref> <newvalue> [<oldvalue>] What is -- doing here? refs given to update-ref begin with refs/ (otherwise it is HEAD), no? -- 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