projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
diff family: add --check option
[git.git]
/
update-ref.c
diff --git
a/update-ref.c
b/update-ref.c
index
65dc3d6
..
fd48742
100644
(file)
--- a/
update-ref.c
+++ b/
update-ref.c
@@
-19,21
+19,23
@@
static int re_verify(const char *path, unsigned char *oldsha1, unsigned char *cu
int main(int argc, char **argv)
{
char *hex;
int main(int argc, char **argv)
{
char *hex;
- const char *refname, *value, *oldval, *path, *lockpath;
+ const char *refname, *value, *oldval, *path;
+ char *lockpath;
unsigned char sha1[20], oldsha1[20], currsha1[20];
int fd, written;
setup_git_directory();
unsigned char sha1[20], oldsha1[20], currsha1[20];
int fd, written;
setup_git_directory();
+ git_config(git_default_config);
if (argc < 3 || argc > 4)
usage(git_update_ref_usage);
refname = argv[1];
value = argv[2];
oldval = argv[3];
if (argc < 3 || argc > 4)
usage(git_update_ref_usage);
refname = argv[1];
value = argv[2];
oldval = argv[3];
- if (get_sha1(value, sha1)
< 0
)
+ if (get_sha1(value, sha1))
die("%s: not a valid SHA1", value);
memset(oldsha1, 0, 20);
die("%s: not a valid SHA1", value);
memset(oldsha1, 0, 20);
- if (oldval && get_sha1(oldval, oldsha1)
< 0
)
+ if (oldval && get_sha1(oldval, oldsha1))
die("%s: not a valid old SHA1", oldval);
path = resolve_ref(git_path("%s", refname), currsha1, !!oldval);
die("%s: not a valid old SHA1", oldval);
path = resolve_ref(git_path("%s", refname), currsha1, !!oldval);
@@
-42,13
+44,15
@@
int main(int argc, char **argv)
if (oldval) {
if (memcmp(currsha1, oldsha1, 20))
if (oldval) {
if (memcmp(currsha1, oldsha1, 20))
- die("Ref %s
changed to %s", refname, sha1_to_hex(curr
sha1));
+ die("Ref %s
is at %s but expected %s", refname, sha1_to_hex(currsha1), sha1_to_hex(old
sha1));
/* Nothing to do? */
if (!memcmp(oldsha1, sha1, 20))
exit(0);
}
path = strdup(path);
lockpath = mkpath("%s.lock", path);
/* Nothing to do? */
if (!memcmp(oldsha1, sha1, 20))
exit(0);
}
path = strdup(path);
lockpath = mkpath("%s.lock", path);
+ if (safe_create_leading_directories(lockpath) < 0)
+ die("Unable to create all of %s", lockpath);
fd = open(lockpath, O_CREAT | O_EXCL | O_WRONLY, 0666);
if (fd < 0)
fd = open(lockpath, O_CREAT | O_EXCL | O_WRONLY, 0666);
if (fd < 0)