git.99rst.org
/
git.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
| inline |
side by side
(parent:
b6e3884
)
replace: die early if replace ref already exists
author
Christian Couder
<redacted>
Sat, 17 May 2014 12:16:36 +0000
(14:16 +0200)
committer
Junio C Hamano
<redacted>
Mon, 19 May 2014 20:39:53 +0000
(13:39 -0700)
If a replace ref already exists for an object, it is
much better for the user if we error out before we
let the user edit the object, rather than after.
Signed-off-by: Christian Couder <redacted>
Signed-off-by: Junio C Hamano <redacted>
builtin/replace.c
patch
|
blob
|
history
diff --git
a/builtin/replace.c
b/builtin/replace.c
index 3d6edaf7c7787c04cddf5a092e708dce71295e2e..4ee3d929fafe64c2114c8de17b56998ea604c50c 100644
(file)
--- a/
builtin/replace.c
+++ b/
builtin/replace.c
@@
-268,7
+268,8
@@
static int edit_and_replace(const char *object_ref, int force)
{
char *tmpfile = git_pathdup("REPLACE_EDITOBJ");
enum object_type type;
- unsigned char old[20], new[20];
+ unsigned char old[20], new[20], prev[20];
+ char ref[PATH_MAX];
if (get_sha1(object_ref, old) < 0)
die("Not a valid object name: '%s'", object_ref);
@@
-277,6
+278,8
@@
static int edit_and_replace(const char *object_ref, int force)
if (type < 0)
die("unable to get object type for %s", sha1_to_hex(old));
+ check_ref_valid(old, prev, ref, sizeof(ref), force);
+
export_object(old, tmpfile);
if (launch_editor(tmpfile, NULL, NULL) < 0)
die("editing object file failed");
git clone https://git.99rst.org/PROJECT