@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.
@@ -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