path: root/builtin-update-ref.c
AgeCommit message (Collapse)Author
2007-10-30Make builtin-update-ref.c use parse_optionsPierre Habouzit
Signed-off-by: Pierre Habouzit <> Signed-off-by: Shawn O. Pearce <>
2007-09-05Function for updating refs.Carlos Rica
A function intended to be called from builtins updating refs by locking them before write, specially those that came from scripts using "git update-ref". [jc: with minor fixups] Signed-off-by: Carlos Rica <> Signed-off-by: Junio C Hamano <>
2007-07-30symbolic-ref, update-ref: do not refuse reflog message with LFJunio C Hamano
Earlier these tools refused to create a reflog entry when the message given by the calling Porcelain had a LF in it, partially to keep the file format integrity of reflog file, which is one-entry-per-line. These tools should not be dictating such a policy. Instead, let the codepath to write out the reflog entry worry about the format integrity and allow messages with LF in them. Signed-off-by: Junio C Hamano <>
2007-05-10git-update-ref: add --no-deref option for overwriting/detaching refSven Verdoolaege
git-checkout is also adapted to make use of this new option instead of the handcrafted command sequence. Signed-off-by: Sven Verdoolaege <> Signed-off-by: Junio C Hamano <>
2007-01-29lock_any_ref_for_update(): do not accept malformatted refs.Junio C Hamano
We used to use lock_any_ref_for_update() because the command needs to also update HEAD (which is not under refs/, so lock_ref_sha1() cannot be used). The function however did not check for refs with illegal characters in them. Use check_ref_format() to catch malformed refs. For this check, we specifically do not want to say having less than two levels in the name is illegal to allow HEAD (and perhaps other special refs in the future). Signed-off-by: Junio C Hamano <>
2007-01-28Don't force everybody to call setup_ident().Junio C Hamano
Back when only handful commands that created commit and tag were the only users of committer identity information, it made sense to explicitly call setup_ident() to pre-fill the default value from the gecos information. But it is much simpler for programs to make the call automatic when get_ident() is called these days, since many more programs want to use the information when updating the reflog. Signed-off-by: Junio C Hamano <>
2007-01-26git-merge: leave sensible reflog message when used as the first level UI.Junio C Hamano
It used to throw potentially multi-line log message at reflog. Just record the heads that were given to be merged at the command line and the action. Revert the removal of the check in "git-update-ref -m" I made earlier which was only a work-around for this. Signed-off-by: Junio C Hamano <>
2007-01-26Make sure we do not write bogus reflog entries.Junio C Hamano
The file format dictates that entries are LF terminated so the message cannot have one in it. Chomp the message to make sure it only has a single line if necessary, while removing the leading whitespace. Signed-off-by: Junio C Hamano <>
2006-09-27update-ref: -d flag and ref creation safety.Junio C Hamano
This adds -d flag to update-ref to allow safe deletion of ref. Before deleting it, the command checks if the given <oldvalue> still matches the value the caller thought the ref contained. Similarly, it also accepts 0{40} or an empty string as <oldvalue> to allow safe creation of a new ref. Signed-off-by: Junio C Hamano <>
2006-09-27Clean-up lock-ref implementationJunio C Hamano
This drops "mustexist" parameter lock_ref_sha1() and lock_any_ref_forupdate() functions take. Signed-off-by: Junio C Hamano <>
2006-08-23Convert memset(hash,0,20) to hashclr(hash).Junio C Hamano
In the same spirit as hashcmp() and hashcpy(). Signed-off-by: Junio C Hamano <>
2006-07-29Call setup_git_directory() much earlierLinus Torvalds
This changes the calling convention of built-in commands and passes the "prefix" (i.e. pathname of $PWD relative to the project root level) down to them. Signed-off-by: Linus Torvalds <> Signed-off-by: Junio C Hamano <>
2006-07-11Allow and to drive reflog entry.Shawn Pearce
Apparently calling setup_ident() after git_config causes the and values read from the config file to be replaced with the data obtained from the host. This means that users who have setup their email address in will instead be writing reflog entries with their hostname. Moving setup_ident() to before git_config in update-ref resolves this ordering problem. Signed-off-by: Shawn O. Pearce <> Signed-off-by: Junio C Hamano <>
2006-06-19Make git-update-ref a builtinLukas Sandström
Signed-off-by: Lukas Sandström <> Signed-off-by: Junio C Hamano <>