@ai-ecoverse/wasm-git 2.55.0-3 → 2.55.0-4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/libexec/git-core/git-difftool--helper +125 -0
- package/libexec/git-core/git-filter-branch +665 -0
- package/libexec/git-core/git-merge-octopus +112 -0
- package/libexec/git-core/git-merge-one-file +167 -0
- package/libexec/git-core/git-merge-resolve +64 -0
- package/libexec/git-core/git-mergetool +579 -0
- package/libexec/git-core/git-mergetool--lib +549 -0
- package/libexec/git-core/git-quiltimport +155 -0
- package/libexec/git-core/git-request-pull +178 -0
- package/libexec/git-core/git-sh-i18n +79 -0
- package/libexec/git-core/git-sh-setup +357 -0
- package/libexec/git-core/git-submodule +671 -0
- package/libexec/git-core/git-web--browse +196 -0
- package/package.json +1 -1
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
#
|
|
3
|
+
# Copyright (c) 2005 Junio C Hamano
|
|
4
|
+
#
|
|
5
|
+
# Resolve two or more trees.
|
|
6
|
+
#
|
|
7
|
+
|
|
8
|
+
. git-sh-setup
|
|
9
|
+
|
|
10
|
+
LF='
|
|
11
|
+
'
|
|
12
|
+
|
|
13
|
+
# The first parameters up to -- are merge bases; the rest are heads.
|
|
14
|
+
bases= head= remotes= sep_seen=
|
|
15
|
+
for arg
|
|
16
|
+
do
|
|
17
|
+
case ",$sep_seen,$head,$arg," in
|
|
18
|
+
*,--,)
|
|
19
|
+
sep_seen=yes
|
|
20
|
+
;;
|
|
21
|
+
,yes,,*)
|
|
22
|
+
head=$arg
|
|
23
|
+
;;
|
|
24
|
+
,yes,*)
|
|
25
|
+
remotes="$remotes$arg "
|
|
26
|
+
;;
|
|
27
|
+
*)
|
|
28
|
+
bases="$bases$arg "
|
|
29
|
+
;;
|
|
30
|
+
esac
|
|
31
|
+
done
|
|
32
|
+
|
|
33
|
+
# Reject if this is not an octopus -- resolve should be used instead.
|
|
34
|
+
case "$remotes" in
|
|
35
|
+
?*' '?*)
|
|
36
|
+
;;
|
|
37
|
+
*)
|
|
38
|
+
exit 2 ;;
|
|
39
|
+
esac
|
|
40
|
+
|
|
41
|
+
# MRC is the current "merge reference commit"
|
|
42
|
+
# MRT is the current "merge result tree"
|
|
43
|
+
|
|
44
|
+
if ! git diff-index --quiet --cached HEAD --
|
|
45
|
+
then
|
|
46
|
+
gettextln "Error: Your local changes to the following files would be overwritten by merge"
|
|
47
|
+
git diff-index --cached --name-only HEAD -- | sed -e 's/^/ /'
|
|
48
|
+
exit 2
|
|
49
|
+
fi
|
|
50
|
+
MRC=$(git rev-parse --verify -q $head)
|
|
51
|
+
MRT=$(git write-tree)
|
|
52
|
+
NON_FF_MERGE=0
|
|
53
|
+
OCTOPUS_FAILURE=0
|
|
54
|
+
for SHA1 in $remotes
|
|
55
|
+
do
|
|
56
|
+
case "$OCTOPUS_FAILURE" in
|
|
57
|
+
1)
|
|
58
|
+
# We allow only last one to have a hand-resolvable
|
|
59
|
+
# conflicts. Last round failed and we still had
|
|
60
|
+
# a head to merge.
|
|
61
|
+
gettextln "Automated merge did not work."
|
|
62
|
+
gettextln "Should not be doing an octopus."
|
|
63
|
+
exit 2
|
|
64
|
+
esac
|
|
65
|
+
|
|
66
|
+
eval pretty_name=\${GITHEAD_$SHA1:-$SHA1}
|
|
67
|
+
if test "$SHA1" = "$pretty_name"
|
|
68
|
+
then
|
|
69
|
+
SHA1_UP="$(echo "$SHA1" | tr a-z A-Z)"
|
|
70
|
+
eval pretty_name=\${GITHEAD_$SHA1_UP:-$pretty_name}
|
|
71
|
+
fi
|
|
72
|
+
common=$(git merge-base --all $SHA1 $MRC) ||
|
|
73
|
+
die "$(eval_gettext "Unable to find common commit with \$pretty_name")"
|
|
74
|
+
|
|
75
|
+
case "$LF$common$LF" in
|
|
76
|
+
*"$LF$SHA1$LF"*)
|
|
77
|
+
eval_gettextln "Already up to date with \$pretty_name"
|
|
78
|
+
continue
|
|
79
|
+
;;
|
|
80
|
+
esac
|
|
81
|
+
|
|
82
|
+
if test "$common,$NON_FF_MERGE" = "$MRC,0"
|
|
83
|
+
then
|
|
84
|
+
# The first head being merged was a fast-forward.
|
|
85
|
+
# Advance MRC to the head being merged, and use that
|
|
86
|
+
# tree as the intermediate result of the merge.
|
|
87
|
+
# We still need to count this as part of the parent set.
|
|
88
|
+
|
|
89
|
+
eval_gettextln "Fast-forwarding to: \$pretty_name"
|
|
90
|
+
git read-tree -u -m $head $SHA1 || exit
|
|
91
|
+
MRC=$SHA1 MRT=$(git write-tree)
|
|
92
|
+
continue
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
NON_FF_MERGE=1
|
|
96
|
+
|
|
97
|
+
eval_gettextln "Trying simple merge with \$pretty_name"
|
|
98
|
+
git read-tree -u -m --aggressive $common $MRT $SHA1 || exit 2
|
|
99
|
+
next=$(git write-tree 2>/dev/null)
|
|
100
|
+
if test $? -ne 0
|
|
101
|
+
then
|
|
102
|
+
gettextln "Simple merge did not work, trying automatic merge."
|
|
103
|
+
git merge-index -o git-merge-one-file -a ||
|
|
104
|
+
OCTOPUS_FAILURE=1
|
|
105
|
+
next=$(git write-tree 2>/dev/null)
|
|
106
|
+
fi
|
|
107
|
+
|
|
108
|
+
MRC="$MRC $SHA1"
|
|
109
|
+
MRT=$next
|
|
110
|
+
done
|
|
111
|
+
|
|
112
|
+
exit "$OCTOPUS_FAILURE"
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
#
|
|
3
|
+
# Copyright (c) Linus Torvalds, 2005
|
|
4
|
+
#
|
|
5
|
+
# This is the git per-file merge script, called with
|
|
6
|
+
#
|
|
7
|
+
# $1 - original file SHA1 (or empty)
|
|
8
|
+
# $2 - file in branch1 SHA1 (or empty)
|
|
9
|
+
# $3 - file in branch2 SHA1 (or empty)
|
|
10
|
+
# $4 - pathname in repository
|
|
11
|
+
# $5 - original file mode (or empty)
|
|
12
|
+
# $6 - file in branch1 mode (or empty)
|
|
13
|
+
# $7 - file in branch2 mode (or empty)
|
|
14
|
+
#
|
|
15
|
+
# Handle some trivial cases.. The _really_ trivial cases have
|
|
16
|
+
# been handled already by git read-tree, but that one doesn't
|
|
17
|
+
# do any merges that might change the tree layout.
|
|
18
|
+
|
|
19
|
+
USAGE='<orig blob> <our blob> <their blob> <path>'
|
|
20
|
+
USAGE="$USAGE <orig mode> <our mode> <their mode>"
|
|
21
|
+
LONG_USAGE="usage: git merge-one-file $USAGE
|
|
22
|
+
|
|
23
|
+
Blob ids and modes should be empty for missing files."
|
|
24
|
+
|
|
25
|
+
SUBDIRECTORY_OK=Yes
|
|
26
|
+
. git-sh-setup
|
|
27
|
+
cd_to_toplevel
|
|
28
|
+
require_work_tree
|
|
29
|
+
|
|
30
|
+
if test $# != 7
|
|
31
|
+
then
|
|
32
|
+
echo "$LONG_USAGE"
|
|
33
|
+
exit 1
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
case "${1:-.}${2:-.}${3:-.}" in
|
|
37
|
+
#
|
|
38
|
+
# Deleted in both or deleted in one and unchanged in the other
|
|
39
|
+
#
|
|
40
|
+
"$1.." | "$1.$1" | "$1$1.")
|
|
41
|
+
if { test -z "$6" && test "$5" != "$7"; } ||
|
|
42
|
+
{ test -z "$7" && test "$5" != "$6"; }
|
|
43
|
+
then
|
|
44
|
+
echo "ERROR: File $4 deleted on one branch but had its" >&2
|
|
45
|
+
echo "ERROR: permissions changed on the other." >&2
|
|
46
|
+
exit 1
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
if test -n "$2"
|
|
50
|
+
then
|
|
51
|
+
echo "Removing $4"
|
|
52
|
+
else
|
|
53
|
+
# read-tree checked that index matches HEAD already,
|
|
54
|
+
# so we know we do not have this path tracked.
|
|
55
|
+
# there may be an unrelated working tree file here,
|
|
56
|
+
# which we should just leave unmolested. Make sure
|
|
57
|
+
# we do not have it in the index, though.
|
|
58
|
+
exec git update-index --remove -- "$4"
|
|
59
|
+
fi
|
|
60
|
+
if test -f "$4"
|
|
61
|
+
then
|
|
62
|
+
rm -f -- "$4" &&
|
|
63
|
+
rmdir -p "$(expr "z$4" : 'z\(.*\)/')" 2>/dev/null || :
|
|
64
|
+
fi &&
|
|
65
|
+
exec git update-index --remove -- "$4"
|
|
66
|
+
;;
|
|
67
|
+
|
|
68
|
+
#
|
|
69
|
+
# Added in one.
|
|
70
|
+
#
|
|
71
|
+
".$2.")
|
|
72
|
+
# the other side did not add and we added so there is nothing
|
|
73
|
+
# to be done, except making the path merged.
|
|
74
|
+
exec git update-index --add --cacheinfo "$6" "$2" "$4"
|
|
75
|
+
;;
|
|
76
|
+
"..$3")
|
|
77
|
+
echo "Adding $4"
|
|
78
|
+
if test -f "$4"
|
|
79
|
+
then
|
|
80
|
+
echo "ERROR: untracked $4 is overwritten by the merge." >&2
|
|
81
|
+
exit 1
|
|
82
|
+
fi
|
|
83
|
+
git update-index --add --cacheinfo "$7" "$3" "$4" &&
|
|
84
|
+
exec git checkout-index -u -f -- "$4"
|
|
85
|
+
;;
|
|
86
|
+
|
|
87
|
+
#
|
|
88
|
+
# Added in both, identically (check for same permissions).
|
|
89
|
+
#
|
|
90
|
+
".$3$2")
|
|
91
|
+
if test "$6" != "$7"
|
|
92
|
+
then
|
|
93
|
+
echo "ERROR: File $4 added identically in both branches," >&2
|
|
94
|
+
echo "ERROR: but permissions conflict $6->$7." >&2
|
|
95
|
+
exit 1
|
|
96
|
+
fi
|
|
97
|
+
echo "Adding $4"
|
|
98
|
+
git update-index --add --cacheinfo "$6" "$2" "$4" &&
|
|
99
|
+
exec git checkout-index -u -f -- "$4"
|
|
100
|
+
;;
|
|
101
|
+
|
|
102
|
+
#
|
|
103
|
+
# Modified in both, but differently.
|
|
104
|
+
#
|
|
105
|
+
"$1$2$3" | ".$2$3")
|
|
106
|
+
|
|
107
|
+
case ",$6,$7," in
|
|
108
|
+
*,120000,*)
|
|
109
|
+
echo "ERROR: $4: Not merging symbolic link changes." >&2
|
|
110
|
+
exit 1
|
|
111
|
+
;;
|
|
112
|
+
*,160000,*)
|
|
113
|
+
echo "ERROR: $4: Not merging conflicting submodule changes." >&2
|
|
114
|
+
exit 1
|
|
115
|
+
;;
|
|
116
|
+
esac
|
|
117
|
+
|
|
118
|
+
src1=$(git unpack-file $2)
|
|
119
|
+
src2=$(git unpack-file $3)
|
|
120
|
+
case "$1" in
|
|
121
|
+
'')
|
|
122
|
+
echo "Added $4 in both, but differently."
|
|
123
|
+
orig=$(git unpack-file $(git hash-object /dev/null))
|
|
124
|
+
;;
|
|
125
|
+
*)
|
|
126
|
+
echo "Auto-merging $4"
|
|
127
|
+
orig=$(git unpack-file $1)
|
|
128
|
+
;;
|
|
129
|
+
esac
|
|
130
|
+
|
|
131
|
+
git merge-file "$src1" "$orig" "$src2"
|
|
132
|
+
ret=$?
|
|
133
|
+
msg=
|
|
134
|
+
if test $ret != 0 || test -z "$1"
|
|
135
|
+
then
|
|
136
|
+
msg='content conflict'
|
|
137
|
+
ret=1
|
|
138
|
+
fi
|
|
139
|
+
|
|
140
|
+
# Create the working tree file, using "our tree" version from the
|
|
141
|
+
# index, and then store the result of the merge.
|
|
142
|
+
git checkout-index -f --stage=2 -- "$4" && cat "$src1" >"$4" || exit 1
|
|
143
|
+
rm -f -- "$orig" "$src1" "$src2"
|
|
144
|
+
|
|
145
|
+
if test "$6" != "$7"
|
|
146
|
+
then
|
|
147
|
+
if test -n "$msg"
|
|
148
|
+
then
|
|
149
|
+
msg="$msg, "
|
|
150
|
+
fi
|
|
151
|
+
msg="${msg}permissions conflict: $5->$6,$7"
|
|
152
|
+
ret=1
|
|
153
|
+
fi
|
|
154
|
+
|
|
155
|
+
if test $ret != 0
|
|
156
|
+
then
|
|
157
|
+
echo "ERROR: $msg in $4" >&2
|
|
158
|
+
exit 1
|
|
159
|
+
fi
|
|
160
|
+
exec git update-index -- "$4"
|
|
161
|
+
;;
|
|
162
|
+
|
|
163
|
+
*)
|
|
164
|
+
echo "ERROR: $4: Not handling case $1 -> $2 -> $3" >&2
|
|
165
|
+
;;
|
|
166
|
+
esac
|
|
167
|
+
exit 1
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
#
|
|
3
|
+
# Copyright (c) 2005 Linus Torvalds
|
|
4
|
+
# Copyright (c) 2005 Junio C Hamano
|
|
5
|
+
#
|
|
6
|
+
# Resolve two trees, using enhanced multi-base read-tree.
|
|
7
|
+
|
|
8
|
+
. git-sh-setup
|
|
9
|
+
|
|
10
|
+
# Abort if index does not match HEAD
|
|
11
|
+
if ! git diff-index --quiet --cached HEAD --
|
|
12
|
+
then
|
|
13
|
+
gettextln "Error: Your local changes to the following files would be overwritten by merge"
|
|
14
|
+
git diff-index --cached --name-only HEAD -- | sed -e 's/^/ /'
|
|
15
|
+
exit 2
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
# The first parameters up to -- are merge bases; the rest are heads.
|
|
19
|
+
bases= head= remotes= sep_seen=
|
|
20
|
+
for arg
|
|
21
|
+
do
|
|
22
|
+
case ",$sep_seen,$head,$arg," in
|
|
23
|
+
*,--,)
|
|
24
|
+
sep_seen=yes
|
|
25
|
+
;;
|
|
26
|
+
,yes,,*)
|
|
27
|
+
head=$arg
|
|
28
|
+
;;
|
|
29
|
+
,yes,*)
|
|
30
|
+
remotes="$remotes$arg "
|
|
31
|
+
;;
|
|
32
|
+
*)
|
|
33
|
+
bases="$bases$arg "
|
|
34
|
+
;;
|
|
35
|
+
esac
|
|
36
|
+
done
|
|
37
|
+
|
|
38
|
+
# Give up if we are given two or more remotes -- not handling octopus.
|
|
39
|
+
case "$remotes" in
|
|
40
|
+
?*' '?*)
|
|
41
|
+
exit 2 ;;
|
|
42
|
+
esac
|
|
43
|
+
|
|
44
|
+
# Give up if this is a baseless merge.
|
|
45
|
+
if test '' = "$bases"
|
|
46
|
+
then
|
|
47
|
+
exit 2
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
git update-index -q --refresh
|
|
51
|
+
git read-tree -u -m --aggressive $bases $head $remotes || exit 2
|
|
52
|
+
echo "Trying simple merge."
|
|
53
|
+
if result_tree=$(git write-tree 2>/dev/null)
|
|
54
|
+
then
|
|
55
|
+
exit 0
|
|
56
|
+
else
|
|
57
|
+
echo "Simple merge failed, trying Automatic merge."
|
|
58
|
+
if git merge-index -o git-merge-one-file -a
|
|
59
|
+
then
|
|
60
|
+
exit 0
|
|
61
|
+
else
|
|
62
|
+
exit 1
|
|
63
|
+
fi
|
|
64
|
+
fi
|