Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
git2
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
git2
Commits
13de9363
Commit
13de9363
authored
Mar 12, 2015
by
Jacques Germishuys
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Collapse whitespace flags into git_merge_file_flags_t
parent
f29dde68
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
23 additions
and
35 deletions
+23
-35
include/git2/merge.h
+11
-23
src/merge.c
+5
-5
src/merge_file.c
+3
-3
tests/merge/files.c
+2
-2
tests/merge/trees/whitespace.c
+2
-2
No files found.
include/git2/merge.h
View file @
13de9363
...
...
@@ -111,23 +111,6 @@ typedef enum {
}
git_merge_file_favor_t
;
/**
* Whitespace merging flags
*/
typedef
enum
{
/** Defaults */
GIT_MERGE_FILE_IGNORE_DEFAULT
=
0
,
/** Ignore all whitespace */
GIT_MERGE_FILE_IGNORE_WHITESPACE
=
(
1
<<
0
),
/** Ignore changes in amount of whitespace */
GIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE
=
(
1
<<
1
),
/** Ignore whitespace at end of line */
GIT_MERGE_FILE_IGNORE_WHITESPACE_EOL
=
(
1
<<
2
),
}
git_merge_file_whitespace_t
;
/**
* File merging flags
*/
typedef
enum
{
...
...
@@ -142,6 +125,15 @@ typedef enum {
/** Condense non-alphanumeric regions for simplified diff file */
GIT_MERGE_FILE_SIMPLIFY_ALNUM
=
(
1
<<
2
),
/** Ignore all whitespace */
GIT_MERGE_FILE_IGNORE_WHITESPACE
=
(
1
<<
3
),
/** Ignore changes in amount of whitespace */
GIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE
=
(
1
<<
4
),
/** Ignore whitespace at end of line */
GIT_MERGE_FILE_IGNORE_WHITESPACE_EOL
=
(
1
<<
5
),
}
git_merge_file_flags_t
;
/**
...
...
@@ -172,10 +164,7 @@ typedef struct {
git_merge_file_favor_t
favor
;
/** Merge file flags. */
git_merge_file_flags_t
flags
;
/** Whitespace merge flags */
unsigned
int
whitespace_flags
;
unsigned
int
flags
;
}
git_merge_file_options
;
#define GIT_MERGE_FILE_OPTIONS_VERSION 1
...
...
@@ -251,8 +240,7 @@ typedef struct {
/** Flags for handling conflicting content. */
git_merge_file_favor_t
file_favor
;
/** Flags for handling whitespace */
unsigned
int
whitespace_flags
;
unsigned
int
file_flags
;
}
git_merge_options
;
#define GIT_MERGE_OPTIONS_VERSION 1
...
...
src/merge.c
View file @
13de9363
...
...
@@ -654,7 +654,7 @@ static int merge_conflict_resolve_automerge(
git_merge_diff_list
*
diff_list
,
const
git_merge_diff
*
conflict
,
unsigned
int
merge_file_favor
,
unsigned
int
whitespac
e_flags
)
unsigned
int
fil
e_flags
)
{
const
git_index_entry
*
ancestor
=
NULL
,
*
ours
=
NULL
,
*
theirs
=
NULL
;
git_merge_file_options
opts
=
GIT_MERGE_FILE_OPTIONS_INIT
;
...
...
@@ -709,7 +709,7 @@ static int merge_conflict_resolve_automerge(
&
conflict
->
their_entry
:
NULL
;
opts
.
favor
=
merge_file_favor
;
opts
.
whitespace_flags
=
whitespac
e_flags
;
opts
.
flags
=
fil
e_flags
;
if
((
error
=
git_repository_odb
(
&
odb
,
diff_list
->
repo
))
<
0
||
(
error
=
git_merge_file_from_index
(
&
result
,
diff_list
->
repo
,
ancestor
,
ours
,
theirs
,
&
opts
))
<
0
||
...
...
@@ -744,7 +744,7 @@ static int merge_conflict_resolve(
git_merge_diff_list
*
diff_list
,
const
git_merge_diff
*
conflict
,
unsigned
int
merge_file_favor
,
unsigned
int
whitespac
e_flags
)
unsigned
int
fil
e_flags
)
{
int
resolved
=
0
;
int
error
=
0
;
...
...
@@ -761,7 +761,7 @@ static int merge_conflict_resolve(
goto
done
;
if
(
!
resolved
&&
(
error
=
merge_conflict_resolve_automerge
(
&
resolved
,
diff_list
,
conflict
,
merge_file_favor
,
whitespac
e_flags
))
<
0
)
merge_file_favor
,
fil
e_flags
))
<
0
)
goto
done
;
*
out
=
resolved
;
...
...
@@ -1783,7 +1783,7 @@ int git_merge_trees(
git_vector_foreach
(
&
changes
,
i
,
conflict
)
{
int
resolved
=
0
;
if
((
error
=
merge_conflict_resolve
(
&
resolved
,
diff_list
,
conflict
,
opts
.
file_favor
,
opts
.
whitespac
e_flags
))
<
0
)
if
((
error
=
merge_conflict_resolve
(
&
resolved
,
diff_list
,
conflict
,
opts
.
file_favor
,
opts
.
fil
e_flags
))
<
0
)
goto
done
;
if
(
!
resolved
)
...
...
src/merge_file.c
View file @
13de9363
...
...
@@ -151,11 +151,11 @@ static int git_merge_file__from_inputs(
if
(
options
.
flags
&
GIT_MERGE_FILE_STYLE_DIFF3
)
xmparam
.
style
=
XDL_MERGE_DIFF3
;
if
(
options
.
whitespace_
flags
&
GIT_MERGE_FILE_IGNORE_WHITESPACE
)
if
(
options
.
flags
&
GIT_MERGE_FILE_IGNORE_WHITESPACE
)
xmparam
.
xpp
.
flags
|=
XDF_IGNORE_WHITESPACE
;
if
(
options
.
whitespace_
flags
&
GIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE
)
if
(
options
.
flags
&
GIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE
)
xmparam
.
xpp
.
flags
|=
XDF_IGNORE_WHITESPACE_CHANGE
;
if
(
options
.
whitespace_
flags
&
GIT_MERGE_FILE_IGNORE_WHITESPACE_EOL
)
if
(
options
.
flags
&
GIT_MERGE_FILE_IGNORE_WHITESPACE_EOL
)
xmparam
.
xpp
.
flags
|=
XDF_IGNORE_WHITESPACE_AT_EOL
;
if
((
xdl_result
=
xdl_merge
(
&
ancestor_mmfile
,
&
our_mmfile
,
...
...
tests/merge/files.c
View file @
13de9363
...
...
@@ -198,7 +198,7 @@ void test_merge_files__automerge_whitespace_eol(void)
theirs
.
path
=
"testfile.txt"
;
theirs
.
mode
=
0100755
;
opts
.
whitespace_
flags
|=
GIT_MERGE_FILE_IGNORE_WHITESPACE_EOL
;
opts
.
flags
|=
GIT_MERGE_FILE_IGNORE_WHITESPACE_EOL
;
cl_git_pass
(
git_merge_file
(
&
result
,
&
ancestor
,
&
ours
,
&
theirs
,
&
opts
));
cl_assert_equal_i
(
1
,
result
.
automergeable
);
...
...
@@ -236,7 +236,7 @@ void test_merge_files__automerge_whitespace_change(void)
theirs
.
path
=
"testfile.txt"
;
theirs
.
mode
=
0100755
;
opts
.
whitespace_
flags
|=
GIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE
;
opts
.
flags
|=
GIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE
;
cl_git_pass
(
git_merge_file
(
&
result
,
&
ancestor
,
&
ours
,
&
theirs
,
&
opts
));
cl_assert_equal_i
(
1
,
result
.
automergeable
);
...
...
tests/merge/trees/whitespace.c
View file @
13de9363
...
...
@@ -54,7 +54,7 @@ void test_merge_trees_whitespace__eol(void)
{
0100644
,
"ee3c2aac8e03224c323b58ecb1f9eef616745467"
,
0
,
"test.txt"
},
};
opts
.
whitespac
e_flags
|=
GIT_MERGE_FILE_IGNORE_WHITESPACE_EOL
;
opts
.
fil
e_flags
|=
GIT_MERGE_FILE_IGNORE_WHITESPACE_EOL
;
cl_git_pass
(
merge_trees_from_branches
(
&
index
,
repo
,
BRANCH_A_EOL
,
BRANCH_B_EOL
,
&
opts
));
...
...
@@ -72,7 +72,7 @@ void test_merge_trees_whitespace__change(void)
{
0100644
,
"a827eab4fd66ab37a6ebcfaa7b7e341abfd55947"
,
0
,
"test.txt"
},
};
opts
.
whitespac
e_flags
|=
GIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE
;
opts
.
fil
e_flags
|=
GIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE
;
cl_git_pass
(
merge_trees_from_branches
(
&
index
,
repo
,
BRANCH_A_CHANGE
,
BRANCH_B_CHANGE
,
&
opts
));
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment