FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
pretend-git/advice.c at master · submitgit/pretend-git · GitHub
submitgit
/
pretend-git
Public
forked from
git/git
Notifications
You must be signed in to change notification settings
Fork
2
Star
0
Code
Pull requests
3
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
pretend-git
/
advice.c
Copy path
More file actions
More file actions
Latest commit
History
History
History
111 lines (97 loc) · 3.21 KB
Breadcrumbs
pretend-git
/
advice.c
Copy path
File metadata and controls
111 lines (97 loc) · 3.21 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include
"cache.h"
int
advice_push_update_rejected
=
1
;
int
advice_push_non_ff_current
=
1
;
int
advice_push_non_ff_matching
=
1
;
int
advice_push_already_exists
=
1
;
int
advice_push_fetch_first
=
1
;
int
advice_push_needs_force
=
1
;
int
advice_status_hints
=
1
;
int
advice_status_u_option
=
1
;
int
advice_commit_before_merge
=
1
;
int
advice_resolve_conflict
=
1
;
int
advice_implicit_identity
=
1
;
int
advice_detached_head
=
1
;
int
advice_set_upstream_failure
=
1
;
int
advice_object_name_warning
=
1
;
int
advice_rm_hints
=
1
;
static
struct
{
const
char
*
name
;
int
*
preference
;
}
advice_config
[]
=
{
{
"pushupdaterejected"
,
&
advice_push_update_rejected
},
{
"pushnonffcurrent"
,
&
advice_push_non_ff_current
},
{
"pushnonffmatching"
,
&
advice_push_non_ff_matching
},
{
"pushalreadyexists"
,
&
advice_push_already_exists
},
{
"pushfetchfirst"
,
&
advice_push_fetch_first
},
{
"pushneedsforce"
,
&
advice_push_needs_force
},
{
"statushints"
,
&
advice_status_hints
},
{
"statusuoption"
,
&
advice_status_u_option
},
{
"commitbeforemerge"
,
&
advice_commit_before_merge
},
{
"resolveconflict"
,
&
advice_resolve_conflict
},
{
"implicitidentity"
,
&
advice_implicit_identity
},
{
"detachedhead"
,
&
advice_detached_head
},
{
"setupstreamfailure"
,
&
advice_set_upstream_failure
},
{
"objectnamewarning"
,
&
advice_object_name_warning
},
{
"rmhints"
,
&
advice_rm_hints
},
/* make this an alias for backward compatibility */
{
"pushnonfastforward"
,
&
advice_push_update_rejected
}
};
void
advise
(
const
char
*
advice
, ...)
{
struct
strbuf
buf
=
STRBUF_INIT
;
va_list
params
;
const
char
*
cp
,
*
np
;
va_start
(
params
,
advice
);
strbuf_vaddf
(
&
buf
,
advice
,
params
);
va_end
(
params
);
for
(
cp
=
buf
.
buf
;
*
cp
;
cp
=
np
) {
np
=
strchrnul
(
cp
,
'\n'
);
fprintf
(
stderr
,
_
(
"hint: %.*s\n"
), (
int
)(
np
-
cp
),
cp
);
if
(
*
np
)
np
++
;
}
strbuf_release
(
&
buf
);
}
int
git_default_advice_config
(
const
char
*
var
,
const
char
*
value
)
{
const
char
*
k
;
int
i
;
if
(!
skip_prefix
(
var
,
"advice."
,
&
k
))
return
0
;
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
advice_config
);
i
++
) {
if
(
strcmp
(
k
,
advice_config
[
i
].
name
))
continue
;
*
advice_config
[
i
].
preference
=
git_config_bool
(
var
,
value
);
return
0
;
}
return
0
;
}
int
error_resolve_conflict
(
const
char
*
me
)
{
error
(
"%s is not possible because you have unmerged files."
,
me
);
if
(
advice_resolve_conflict
)
/*
* Message used both when 'git commit' fails and when
* other commands doing a merge do.
*/
advise
(
_
(
"Fix them up in the work tree, and then use 'git add/rm <file>'\n"
"as appropriate to mark resolution and make a commit."
));
return
-1
;
}
void
NORETURN
die_resolve_conflict
(
const
char
*
me
)
{
error_resolve_conflict
(
me
);
die
(
"Exiting because of an unresolved conflict."
);
}
void
detach_advice
(
const
char
*
new_name
)
{
const
char
fmt
[]
=
"Note: checking out '%s'.\n\n"
"You are in 'detached HEAD' state. You can look around, make experimental\n"
"changes and commit them, and you can discard any commits you make in this\n"
"state without impacting any branches by performing another checkout.\n\n"
"If you want to create a new branch to retain commits you create, you may\n"
"do so (now or later) by using -b with the checkout command again. Example:\n\n"
" git checkout -b <new-branch-name>\n\n"
;
fprintf
(
stderr
,
fmt
,
new_name
);
}
Back
|
FazBrowse Home
|
New Git URL