Files
git/builtin
Michael Haggerty 1c03c4d347 delete_ref(): use the usual convention for old_sha1
The ref_transaction_update() family of functions use the following
convention for their old_sha1 parameters:

* old_sha1 == NULL: Don't check the old value at all.
* is_null_sha1(old_sha1): Ensure that the reference didn't exist
  before the transaction.
* otherwise: Ensure that the reference had the specified value before
  the transaction.

delete_ref() had a different convention, namely treating
is_null_sha1(old_sha1) as "don't care". Change it to adhere to the
standard convention to reduce the scope for confusion.

Please note that it is now a bug to pass old_sha1=NULL_SHA1 to
delete_ref() (because it doesn't make sense to delete a reference that
you already know doesn't exist). This is consistent with the behavior
of ref_transaction_delete().

Most of the callers of delete_ref() never pass old_sha1=NULL_SHA1 to
delete_ref(), and are therefore unaffected by this change. The
two exceptions are:

* The call in cmd_update_ref(), which passed NULL_SHA1 if the old
  value passed in on the command line was 0{40} or the empty string.
  Change that caller to pass NULL in those cases.

  Arguably, it should be an error to call "update-ref -d" with the old
  value set to "does not exist", just as it is for the `--stdin`
  command "delete". But since this usage was accepted until now,
  continue to accept it.

* The call in delete_branches(), which could pass NULL_SHA1 if
  deleting a broken or symbolic ref. Change it to pass NULL in these
  cases.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-06-22 13:17:14 -07:00
..
2015-05-22 12:41:55 -07:00
2014-07-16 11:10:11 -07:00
2015-05-05 21:00:23 -07:00
2015-06-01 12:45:15 -07:00
2015-01-14 09:32:04 -08:00
2015-05-26 13:24:46 -07:00
2015-05-11 14:39:28 -07:00
2015-06-22 13:17:10 -07:00
2015-06-05 12:17:37 -07:00
2015-05-25 12:19:32 -07:00
2015-05-11 14:23:39 -07:00
2015-05-11 14:23:59 -07:00
2015-03-20 13:11:53 -07:00
2015-06-05 12:17:36 -07:00
2015-01-14 09:32:04 -08:00
2015-01-14 09:32:04 -08:00
2015-05-11 14:23:39 -07:00
2015-06-22 13:17:10 -07:00
2015-05-11 14:23:39 -07:00
2015-01-14 09:32:04 -08:00
2015-01-14 09:32:04 -08:00