Skip to content

Commit

Permalink
shallow: add setup_temporary_shallow()
Browse files Browse the repository at this point in the history
This function is like setup_alternate_shallow() except that it does
not lock $GIT_DIR/shallow.  It is supposed to be used when a program
generates temporary shallow for use by another program, then throw
the shallow file away.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Nguyễn Thái Ngọc Duy authored and Junio C Hamano committed Aug 28, 2013
1 parent 6a3bbb4 commit 08ea65a
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
1 change: 1 addition & 0 deletions commit.h
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@ extern void set_alternate_shallow_file(const char *path);
extern int write_shallow_commits(struct strbuf *out, int use_pack_protocol);
extern void setup_alternate_shallow(struct lock_file *shallow_lock,
const char **alternate_shallow_file);
extern char *setup_temporary_shallow(void);

int is_descendant_of(struct commit *, struct commit_list *);
int in_merge_bases(struct commit *, struct commit *);
Expand Down
23 changes: 23 additions & 0 deletions shallow.c
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,29 @@ int write_shallow_commits(struct strbuf *out, int use_pack_protocol)
return data.count;
}

char *setup_temporary_shallow(void)
{
struct strbuf sb = STRBUF_INIT;
int fd;

if (write_shallow_commits(&sb, 0)) {
struct strbuf path = STRBUF_INIT;
strbuf_addstr(&path, git_path("shallow_XXXXXX"));
fd = xmkstemp(path.buf);
if (write_in_full(fd, sb.buf, sb.len) != sb.len)
die_errno("failed to write to %s",
path.buf);
close(fd);
strbuf_release(&sb);
return strbuf_detach(&path, NULL);
}
/*
* is_repository_shallow() sees empty string as "no shallow
* file".
*/
return xstrdup("");
}

void setup_alternate_shallow(struct lock_file *shallow_lock,
const char **alternate_shallow_file)
{
Expand Down

0 comments on commit 08ea65a

Please sign in to comment.