Skip to content

Commit

Permalink
rerere: honor conflict-marker-size attribute
Browse files Browse the repository at this point in the history
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Jan 17, 2010
1 parent 191f241 commit 8588567
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 2 deletions.
15 changes: 15 additions & 0 deletions ll-merge.c
Original file line number Diff line number Diff line change
Expand Up @@ -380,3 +380,18 @@ int ll_merge(mmbuffer_t *result_buf,
ours, our_label, theirs, their_label,
virtual_ancestor, marker_size);
}

int ll_merge_marker_size(const char *path)
{
static struct git_attr_check check;
int marker_size = DEFAULT_CONFLICT_MARKER_SIZE;

if (!check.attr)
check.attr = git_attr("conflict-marker-size");
if (!git_checkattr(path, 1, &check) && check.value) {
marker_size = atoi(check.value);
if (marker_size <= 0)
marker_size = DEFAULT_CONFLICT_MARKER_SIZE;
}
return marker_size;
}
2 changes: 2 additions & 0 deletions ll-merge.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@ int ll_merge(mmbuffer_t *result_buf,
mmfile_t *theirs, const char *their_label,
int virtual_ancestor);

int ll_merge_marker_size(const char *path);

#endif
5 changes: 3 additions & 2 deletions rerere.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include "dir.h"
#include "resolve-undo.h"
#include "ll-merge.h"
#include "attr.h"

/* if rerere_enabled == -1, fall back to detection of .git/rr-cache */
static int rerere_enabled = -1;
Expand Down Expand Up @@ -221,7 +222,7 @@ static int handle_file(const char *path, unsigned char *sha1, const char *output
{
int hunk_no = 0;
struct rerere_io_file io;
int marker_size = 7;
int marker_size = ll_merge_marker_size(path);

memset(&io, 0, sizeof(io));
io.io.getline = rerere_file_getline;
Expand Down Expand Up @@ -288,7 +289,7 @@ static int handle_cache(const char *path, unsigned char *sha1, const char *outpu
struct cache_entry *ce;
int pos, len, i, hunk_no;
struct rerere_io_mem io;
int marker_size = 7;
int marker_size = ll_merge_marker_size(path);

/*
* Reproduce the conflicted merge in-core
Expand Down

0 comments on commit 8588567

Please sign in to comment.