Skip to content

Commit

Permalink
Merge part of jc/portable branch
Browse files Browse the repository at this point in the history
  • Loading branch information
Junio C Hamano committed Feb 21, 2006
2 parents 83f5053 + abb7c7b commit 6643688
Show file tree
Hide file tree
Showing 9 changed files with 57 additions and 2 deletions.
25 changes: 25 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,11 @@ all:
#
# Define NO_ICONV if your libc does not properly support iconv.
#
# Define NO_ACCURATE_DIFF if your diff program at least sometimes misses
# a missing newline at the end of the file.
#
# Define NO_PYTHON if you want to loose all benefits of the recursive merge.
#
# Define COLLISION_CHECK below if you believe that SHA1's
# 1461501637330902918203684832716283019655932542976 hashes do not give you
# sufficient guarantee that no collisions between objects will ever happen.
Expand Down Expand Up @@ -273,6 +278,16 @@ ifeq ($(uname_S),AIX)
NO_STRCASESTR=YesPlease
NEEDS_LIBICONV=YesPlease
endif
ifeq ($(uname_S),IRIX64)
NO_IPV6=YesPlease
NO_SETENV=YesPlease
NO_STRCASESTR=YesPlease
NO_SOCKADDR_STORAGE=YesPlease
SHELL_PATH=/usr/gnu/bin/bash
ALL_CFLAGS += -DPATH_MAX=1024
# for now, build 32-bit version
ALL_LDFLAGS += -L/usr/lib32
endif
ifneq (,$(findstring arm,$(uname_M)))
ARM_SHA1 = YesPlease
endif
Expand Down Expand Up @@ -403,6 +418,9 @@ else
endif
endif
endif
ifdef NO_ACCURATE_DIFF
ALL_CFLAGS += -DNO_ACCURATE_DIFF
endif

ALL_CFLAGS += -DSHA1_HEADER=$(call shellquote,$(SHA1_HEADER)) $(COMPAT_CFLAGS)
LIB_OBJS += $(COMPAT_OBJS)
Expand All @@ -426,6 +444,7 @@ $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
sed -e '1s|#!.*/sh|#!$(call shq,$(SHELL_PATH))|' \
-e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
-e 's/@@NO_CURL@@/$(NO_CURL)/g' \
-e 's/@@NO_PYTHON@@/$(NO_PYTHON)/g' \
$@.sh >$@
chmod +x $@

Expand Down Expand Up @@ -505,6 +524,12 @@ doc:

### Testing rules

# GNU make supports exporting all variables by "export" without parameters.
# However, the environment gets quite big, and some programs have problems
# with that.

export NO_PYTHON

test: all
$(MAKE) -C t/ all

Expand Down
8 changes: 8 additions & 0 deletions apply.c
Original file line number Diff line number Diff line change
Expand Up @@ -1142,6 +1142,14 @@ static int apply_one_fragment(struct buffer_desc *desc, struct fragment *frag)
size -= len;
}

#ifdef NO_ACCURATE_DIFF
if (oldsize > 0 && old[oldsize - 1] == '\n' &&
newsize > 0 && new[newsize - 1] == '\n') {
oldsize--;
newsize--;
}
#endif

offset = find_offset(buf, desc->size, old, oldsize, frag->newpos);
if (offset >= 0) {
int diff = newsize - oldsize;
Expand Down
2 changes: 1 addition & 1 deletion git-clone.sh
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ yes,yes)
fi &&
rm -f "$GIT_DIR/objects/sample" &&
cd "$repo" &&
find objects -depth -print | cpio -puamd$l "$GIT_DIR/" || exit 1
find objects -depth -print | cpio -pumd$l "$GIT_DIR/" || exit 1
;;
yes)
mkdir -p "$GIT_DIR/objects/info"
Expand Down
4 changes: 4 additions & 0 deletions git-merge.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ LF='
all_strategies='recursive octopus resolve stupid ours'
default_strategies='recursive'
use_strategies=
if test "@@NO_PYTHON@@"; then
all_strategies='resolve octopus stupid ours'
default_strategies='resolve'
fi

dropsave() {
rm -f -- "$GIT_DIR/MERGE_HEAD" "$GIT_DIR/MERGE_MSG" \
Expand Down
4 changes: 4 additions & 0 deletions t/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ shellquote = '$(call shq,$(1))'

T = $(wildcard t[0-9][0-9][0-9][0-9]-*.sh)

ifdef NO_PYTHON
GIT_TEST_OPTS += --no-python
endif

all: $(T) clean

$(T):
Expand Down
2 changes: 1 addition & 1 deletion t/t0000-basic.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ fi

. ./test-lib.sh

"$PYTHON" -c 'import subprocess' || {
test "$no_python" || "$PYTHON" -c 'import subprocess' || {
echo >&2 'Your python seem to lack "subprocess" module.
Please check INSTALL document.'
exit 1
Expand Down
6 changes: 6 additions & 0 deletions t/t6021-merge-criss-cross.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@
test_description='Test criss-cross merge'
. ./test-lib.sh

if test "$no_python"; then
echo "Skipping: no python => no recursive merge"
test_done
exit 0
fi

test_expect_success 'prepare repository' \
'echo "1
2
Expand Down
6 changes: 6 additions & 0 deletions t/t6022-merge-rename.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
test_description='Merge-recursive merging renames'
. ./test-lib.sh

if test "$no_python"; then
echo "Skipping: no python => no recursive merge"
test_done
exit 0
fi

test_expect_success setup \
'
cat >A <<\EOF &&
Expand Down
2 changes: 2 additions & 0 deletions t/test-lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ do
exit 0 ;;
-v|--v|--ve|--ver|--verb|--verbo|--verbos|--verbose)
verbose=t; shift ;;
--no-python)
no_python=t; shift ;;
*)
break ;;
esac
Expand Down

0 comments on commit 6643688

Please sign in to comment.