On 10/12/2015 11:51 PM, David Turner wrote:
> From: Ronnie Sahlberg <[email protected]>
> 
> Move update_ref() to the refs.c file since this function does not
> contain any backend specific code.  Move the ref classifier functions
> as well, since update_ref depends on them.
> 
> Based on Ronnie Sahlberg's patch
> 
> Signed-off-by: Ronnie Sahlberg <[email protected]>
> Signed-off-by: David Turner <[email protected]>
> ---
>  refs-be-files.c | 117 
> +-------------------------------------------------------
>  refs.c          | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 116 insertions(+), 116 deletions(-)
> 
> diff --git a/refs-be-files.c b/refs-be-files.c
> index d0dfdfc..7fe4931 100644
> --- a/refs-be-files.c
> +++ b/refs-be-files.c
> [...]
> @@ -2879,77 +2877,6 @@ static int delete_ref_loose(struct ref_lock *lock, int 
> flag, struct strbuf *err)
> [...]
> -static int write_pseudoref(const char *pseudoref, const unsigned char *sha1,
> -                        const unsigned char *old_sha1, struct strbuf *err)
> -{
> -     const char *filename;
> -     int fd;
> -     static struct lock_file lock;
> -     struct strbuf buf = STRBUF_INIT;
> -     int ret = -1;
> -
> -     strbuf_addf(&buf, "%s\n", sha1_to_hex(sha1));
> -
> -     filename = git_path("%s", pseudoref);
> -     fd = hold_lock_file_for_update(&lock, filename, LOCK_DIE_ON_ERROR);
> -     if (fd < 0) {
> -             strbuf_addf(err, "Could not open '%s' for writing: %s",
> -                         filename, strerror(errno));
> -             return -1;
> -     }
> -
> -     if (old_sha1) {
> -             unsigned char actual_old_sha1[20];
> -
> -             if (read_ref(pseudoref, actual_old_sha1))
> -                     die("could not read ref '%s'", pseudoref);
> -             if (hashcmp(actual_old_sha1, old_sha1)) {
> -                     strbuf_addf(err, "Unexpected sha1 when writing %s", 
> pseudoref);
> -                     rollback_lock_file(&lock);
> -                     goto done;
> -             }
> -     }
> -
> -     if (write_in_full(fd, buf.buf, buf.len) != buf.len) {
> -             strbuf_addf(err, "Could not write to '%s'", filename);
> -             rollback_lock_file(&lock);
> -             goto done;
> -     }
> -
> -     commit_lock_file(&lock);
> -     ret = 0;
> -done:
> -     strbuf_release(&buf);
> -     return ret;
> -}
> -
> [...]
> diff --git a/refs.c b/refs.c
> index 77492ff..2d10708 100644
> --- a/refs.c
> +++ b/refs.c
> @@ -1,3 +1,118 @@
> [...]
> +static int write_pseudoref(const char *pseudoref, const unsigned char *sha1,
> +                        const unsigned char *old_sha1, struct strbuf *err)
> +{
> +     const char *filename;
> +     int fd;
> +     static struct lock_file lock;
> +     struct strbuf buf = STRBUF_INIT;
> +     int ret = -1;
> +
> +     strbuf_addf(&buf, "%s\n", sha1_to_hex(sha1));
> +
> +     filename = git_path("%s", pseudoref);
> +     fd = hold_lock_file_for_update(&lock, filename, LOCK_DIE_ON_ERROR);
> +     if (fd < 0) {
> +             strbuf_addf(err, "Could not open '%s' for writing: %s",
> +                         filename, strerror(errno));
> +             return -1;
> +     }
> +
> +     if (old_sha1) {
> +             unsigned char actual_old_sha1[20];
> +             read_ref(pseudoref, actual_old_sha1);

The original read

                if (read_ref(pseudoref, actual_old_sha1))
                        die("could not read ref '%s'", pseudoref);

This seems like an important test. What happened to it?

If its removal was intentional, it deserves a careful explanation (and
should probably be done as a separate commit). If it was an accident,
please consider how this accident arose and try to think about whether
similar accidents might have happened elsewhere in this series.

> [...]

Michael

-- 
Michael Haggerty
[email protected]

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to