Merge branch 'jk/symbolic-ref'
authorJunio C Hamano <gitster@pobox.com>
Tue, 26 Jan 2016 23:40:30 +0000 (15:40 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 26 Jan 2016 23:40:30 +0000 (15:40 -0800)
The low-level code that is used to create symbolic references has
been updated to share more code with the code that deals with
normal references.

* jk/symbolic-ref:
lock_ref_sha1_basic: handle REF_NODEREF with invalid refs
lock_ref_sha1_basic: always fill old_oid while holding lock
checkout,clone: check return value of create_symref
create_symref: write reflog while holding lock
create_symref: use existing ref-lock code
create_symref: modernize variable names

1  2 
t/t1401-symbolic-ref.sh
diff --combined t/t1401-symbolic-ref.sh
index ce8b4f4d0f375fb49afdb80d002559464a5b2812,a713766cc2db44957a814739a24c6c540f7b619c..417eecc3af2a30c3544ddd2f83b7ccecc540eaf1
@@@ -29,7 -29,7 +29,7 @@@ reset_to_san
  
  test_expect_success 'symbolic-ref refuses bare sha1' '
        echo content >file && git add file && git commit -m one &&
 -      test_must_fail git symbolic-ref HEAD `git rev-parse HEAD`
 +      test_must_fail git symbolic-ref HEAD $(git rev-parse HEAD)
  '
  reset_to_sane
  
@@@ -114,4 -114,19 +114,19 @@@ test_expect_success 'symbolic-ref write
        test_cmp expect actual
  '
  
+ test_expect_success 'symbolic-ref does not create ref d/f conflicts' '
+       git checkout -b df &&
+       test_commit df &&
+       test_must_fail git symbolic-ref refs/heads/df/conflict refs/heads/df &&
+       git pack-refs --all --prune &&
+       test_must_fail git symbolic-ref refs/heads/df/conflict refs/heads/df
+ '
+ test_expect_success 'symbolic-ref handles existing pointer to invalid name' '
+       head=$(git rev-parse HEAD) &&
+       git symbolic-ref HEAD refs/heads/outer &&
+       git update-ref refs/heads/outer/inner $head &&
+       git symbolic-ref HEAD refs/heads/unrelated
+ '
  test_done