Junio C Hamano [off-list ref] wrote:
Shawn Pearce [off-list ref] writes:
quoted
Junio C Hamano [off-list ref] wrote:
quoted
I've swallowed all 10 and pushed them out in "pu", but could you
add tests to check the Porcelainish commands you touched with
this series to make sure they all log correctly?
Sure. I've been putting it off as I've been busy the past few days
and have also been thinking about trying to rebuild reflog using a
tag/annotation branch style, which might be more generally useful
to others.
It appears that there is more serious breakage caused by the
lock_ref change. http-fetch in "next" fails to clone, because
the call to lock-ref-sha1 in fetch.c::pull() forgets that the
program might be creating a new ref.
The breakage is because of current_ref always being null. The old
code would allow locking a non-existant ref in this case while the
new code was failing. A simple change such as the following should
fix it:
-->8--
Fix fetch when using reflog.
Previously fetch was permitted to create refs if they did not exist;
this only worked as current_ref was always NULL and thus never
would get compared against the existing ref.
Signed-off-by: Shawn O. Pearce <redacted>
---
2dad4178db978c01257fde949d808361589ee003
fetch.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
2dad4178db978c01257fde949d808361589ee003
diff --git a/fetch.c b/fetch.c
index fd57684..15110b8 100644
--- a/fetch.c
+++ b/fetch.c
@@ -213,7 +213,7 @@ int pull(char *target)
save_commit_buffer = 0;
track_object_refs = 0;
if (write_ref) {
- lock = lock_ref_sha1(write_ref, current_ref, 1);
+ lock = lock_ref_sha1(write_ref, current_ref, 0);
if (!lock) {
error("Can't lock ref %s", write_ref);
return -1;--
1.3.3.gfad60