From 6d35cc76909512d386b503a3feb1b40c153c3195 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 2 Sep 2005 21:19:26 -0700 Subject: Document hooks. Signed-off-by: Junio C Hamano diff --git a/Documentation/Makefile b/Documentation/Makefile index afdecc1..b81a6a2 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -8,6 +8,7 @@ ARTICLES += cvs-migration ARTICLES += diffcore ARTICLES += howto-index ARTICLES += repository-layout +ARTICLES += hooks # with their own formatting rules. SP_ARTICLES = glossary howto/revert-branch-rebase diff --git a/Documentation/git-applymbox.txt b/Documentation/git-applymbox.txt index 3d813ec..f6d857c 100644 --- a/Documentation/git-applymbox.txt +++ b/Documentation/git-applymbox.txt @@ -64,6 +64,12 @@ OPTIONS generated "Signed-off-by" line based on your committer identity. + +SEE ALSO +-------- +link:git-applypatch.html[git-applypatch]. + + Author ------ Written by Linus Torvalds diff --git a/Documentation/git-applypatch.txt b/Documentation/git-applypatch.txt index 14ce53a..b894632 100644 --- a/Documentation/git-applypatch.txt +++ b/Documentation/git-applypatch.txt @@ -16,6 +16,10 @@ Takes three files , , and prepared from an e-mail message by 'git-mailinfo', and creates a commit. It is usually not necessary to use this command directly. +This command can run `applypatch-msg`, `pre-applypatch`, and +`post-applypatch` hooks. See link:hooks.html[hooks] for more +information. + OPTIONS ------- diff --git a/Documentation/git-commit-script.txt b/Documentation/git-commit-script.txt index cf6b5c3..faa1870 100644 --- a/Documentation/git-commit-script.txt +++ b/Documentation/git-commit-script.txt @@ -8,7 +8,7 @@ git-commit-script - Record your changes SYNOPSIS -------- -'git commit' [-a] [-s] [-v] [(-c | -C) | -F | -m ] ... +'git commit' [-a] [-s] [-v] [(-c | -C) | -F | -m ] [-e] ... DESCRIPTION ----------- @@ -17,6 +17,10 @@ Updates the index file for given paths, or all modified files if VISUAL and EDITOR environment variables to edit the commit log message. +This command can run `commit-msg`, `pre-commit`, and +`post-commit` hooks. See link:hooks.html[hooks] for more +information. + OPTIONS ------- -a:: @@ -47,8 +51,14 @@ OPTIONS has a SP character immediately followed by a TAB character. +-e:: + The message taken from file with `-F`, command line with + `-m`, and from file with `-C` are usually used as the + commit log message unmodified. This option lets you + further edit the message taken from these sources. + ...:: - Update specified paths in the index file. + Update specified paths in the index file before committing. Author diff --git a/Documentation/git-receive-pack.txt b/Documentation/git-receive-pack.txt index 2f1a1f8..2c6065f 100644 --- a/Documentation/git-receive-pack.txt +++ b/Documentation/git-receive-pack.txt @@ -77,6 +77,12 @@ OPTIONS :: The repository to sync into. + +SEE ALSO +-------- +link:git-send-pack.html[git-send-pack] + + Author ------ Written by Linus Torvalds diff --git a/Documentation/hooks.txt b/Documentation/hooks.txt new file mode 100644 index 0000000..45809ba --- /dev/null +++ b/Documentation/hooks.txt @@ -0,0 +1,128 @@ +Hooks used by GIT +================= +v0.99.6, Sep 2005 + +Hooks are little scripts you can place in `$GIT_DIR/hooks` +directory to trigger action at certain points. When +`git-init-db` is run, a handful example hooks are copied in the +`hooks` directory of the new repository, but by default they are +all disabled. To enable a hook, make it executable with `chmod ++x`. + +This document describes the currently defined hooks. + +applypatch-msg +-------------- + +This hook is invoked by `git-applypatch` script, which is +typically invoked by `git-applymbox`. It takes a single +parameter, the name of the file that holds the proposed commit +log message. Exiting with non-zero status causes the +'git-applypatch' to abort before applying the patch. + +The hook is allowed to edit the message file in place, and can +be used to normalize the message into some project standard +format (if the project has one). It can also be used to refuse +the commit after inspecting the message file. + +The default applypatch-msg hook, when enabled, runs the +commit-msg hook, if the latter is enabled. + +pre-applypatch +-------------- + +This hook is invoked by `git-applypatch` script, which is +typically invoked by `git-applymbox`. It takes no parameter, +and is invoked after the patch is applied, but before a commit +is made. Exiting with non-zero status causes the working tree +after application of the patch not committed. + +It can be used to inspect the current working tree and refuse to +make a commit if it does not pass certain test. + +The default pre-applypatch hook, when enabled, runs the +pre-commit hook, if the latter is enabled. + +post-applypatch +--------------- + +This hook is invoked by `git-applypatch` script, which is +typically invoked by `git-applymbox`. It takes no parameter, +and is invoked after the patch is applied and a commit is made. + +This hook is meant primarily for notification, and cannot affect +the outcome of `git-applypatch`. + +pre-commit +---------- + +This hook is invoked by `git-commit-script`, and can be bypassed +with `--no-verify` option. It takes no parameter, and is +invoked before obtaining the proposed commit log message and +making a commit. Exiting with non-zero status from this script +causes the `git-commit-script` to abort. + +The default pre-commit hook, when enabled, catches introduction +of lines with trailing whitespaces and aborts the commit when +a such line is found. + +commit-msg +---------- + +This hook is invoked by `git-commit-script`, and can be bypassed +with `--no-verify` option. It takes a single parameter, the +name of the file that holds the proposed commit log message. +Exiting with non-zero status causes the `git-commit-script` to +abort. + +The hook is allowed to edit the message file in place, and can +be used to normalize the message into some project standard +format (if the project has one). It can also be used to refuse +the commit after inspecting the message file. + +The default commit-msg hook, when enabled, detects duplicate +Signed-off-by: lines, and aborts the commit when one is found. + +post-commit +----------- + +This hook is invoked by `git-commit-script`. It takes no +parameter, and is invoked after a commit is made. + +This hook is meant primarily for notification, and cannot affect +the outcome of `git-commit-script`. + +The default post-commit hook, when enabled, demonstrates how to +send out a commit notification e-mail. + +update +------ + +This hook is invoked by `git-receive-pack`, which is invoked +when a `git push` is done against the repository. It takes +three parameters, name of the ref being updated, old object name +stored in the ref, and the new objectname to be stored in the +ref. Exiting with non-zero status from this hook prevents +`git-receive-pack` from updating the ref. + +This can be used to prevent 'forced' update on certain refs by +making sure that the object name is a commit object that is a +descendant of the commit object named by the old object name. +Another use suggested on the mailing list is to use this hook to +implement access control which is finer grained than the one +based on filesystem group. + +post-update +----------- + +This hook is invoked by `git-receive-pack`, which is invoked +when a `git push` is done against the repository. It takes +variable number of parameters; each of which is the name of ref +that was actually updated. + +This hook is meant primarily for notification, and cannot affect +the outcome of `git-receive-pack`. + +The default post-update hook, when enabled, runs +`git-update-server-info` to keep the information used by dumb +transport up-to-date. -- cgit v0.10.2-6-g49f6 From baeda3a749ddcb6feee8354cf2b6f8f55cbd7200 Mon Sep 17 00:00:00 2001 From: Paolo 'Blaisorblade' Giarrusso Date: Fri, 2 Sep 2005 11:56:52 +0200 Subject: [PATCH] Doc: replace read-cache with git-read-tree. Replace references to "read-cache" with references to git-read-tree in the documentation. I chose that because reference say "see read-cache about stages", and stages are explained in git-read-tree. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Junio C Hamano diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt index d05827f..9c5ef8e 100644 --- a/Documentation/git-ls-files.txt +++ b/Documentation/git-ls-files.txt @@ -88,7 +88,7 @@ For an unmerged path, instead of recording a single mode/SHA1 pair, the dircache records up to three such pairs; one from tree O in stage 1, A in stage 2, and B in stage 3. This information can be used by the user (or the porcelain) to see what should eventually be recorded at the -path. (see read-cache for more information on state) +path. (see git-read-tree for more information on state) Exclude Patterns @@ -180,7 +180,7 @@ An example: See Also -------- -link:read-cache.html[read-cache] +link:git-read-tree.html[git-read-tree] Author -- cgit v0.10.2-6-g49f6 From 2ab141a26f93c4d97e243a6be8a38a7dd4eb35a3 Mon Sep 17 00:00:00 2001 From: Peter Hagervall Date: Fri, 2 Sep 2005 14:17:10 +0200 Subject: [PATCH] Possible cleanups for local-pull.c Hi. This patch contains the following possible cleanups: * Make some needlessly global functions in local-pull.c static * Change 'char *' to 'const char *' where appropriate Signed-off-by: Peter Hagervall Signed-off-by: Junio C Hamano diff --git a/cache.h b/cache.h index 0dcd2fe..f0c9b01 100644 --- a/cache.h +++ b/cache.h @@ -327,7 +327,7 @@ extern int get_ack(int fd, unsigned char *result_sha1); extern struct ref **get_remote_heads(int in, struct ref **list, int nr_match, char **match); extern struct packed_git *parse_pack_index(unsigned char *sha1); -extern struct packed_git *parse_pack_index_file(unsigned char *sha1, +extern struct packed_git *parse_pack_index_file(const unsigned char *sha1, char *idx_path); extern void prepare_packed_git(void); diff --git a/local-pull.c b/local-pull.c index 8b16f50..ca0003b 100644 --- a/local-pull.c +++ b/local-pull.c @@ -17,7 +17,7 @@ void prefetch(unsigned char *sha1) static struct packed_git *packs = NULL; -void setup_index(unsigned char *sha1) +static void setup_index(unsigned char *sha1) { struct packed_git *new_pack; char filename[PATH_MAX]; @@ -30,7 +30,7 @@ void setup_index(unsigned char *sha1) packs = new_pack; } -int setup_indices() +static int setup_indices(void) { DIR *dir; struct dirent *de; @@ -49,7 +49,7 @@ int setup_indices() return 0; } -int copy_file(const char *source, const char *dest, const char *hex) +static int copy_file(const char *source, const char *dest, const char *hex) { if (use_link) { if (!link(source, dest)) { @@ -97,7 +97,7 @@ int copy_file(const char *source, const char *dest, const char *hex) return -1; } -int fetch_pack(unsigned char *sha1) +static int fetch_pack(const unsigned char *sha1) { struct packed_git *target; char filename[PATH_MAX]; @@ -125,7 +125,7 @@ int fetch_pack(unsigned char *sha1) return 0; } -int fetch_file(unsigned char *sha1) +static int fetch_file(const unsigned char *sha1) { static int object_name_start = -1; static char filename[PATH_MAX]; diff --git a/sha1_file.c b/sha1_file.c index fa37f1e..64eac59 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -487,7 +487,7 @@ struct packed_git *parse_pack_index(unsigned char *sha1) return parse_pack_index_file(sha1, path); } -struct packed_git *parse_pack_index_file(unsigned char *sha1, char *idx_path) +struct packed_git *parse_pack_index_file(const unsigned char *sha1, char *idx_path) { struct packed_git *p; unsigned long idx_size; -- cgit v0.10.2-6-g49f6 From ce726ec8d80ccce4e4956a026d807cb02bdc6de9 Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Sun, 4 Sep 2005 13:43:16 +0400 Subject: [PATCH] NUL terminate the object data in patch_delta() At least pretty_print_commit() expects to get NUL-terminated commit data to work properly. unpack_sha1_rest(), which reads objects from separate files, and unpack_non_delta_entry(), which reads non-delta-compressed objects from pack files, already add the NUL byte after the object data, but patch_delta() did not do it, which caused problems with, e.g., git-rev-list --pretty when there are delta-compressed commit objects. Signed-off-by: Sergey Vlasov Signed-off-by: Junio C Hamano diff --git a/patch-delta.c b/patch-delta.c index 26281ea..98c27be 100644 --- a/patch-delta.c +++ b/patch-delta.c @@ -34,9 +34,10 @@ void *patch_delta(void *src_buf, unsigned long src_size, /* now the result size */ size = get_delta_hdr_size(&data); - dst_buf = malloc(size); + dst_buf = malloc(size + 1); if (!dst_buf) return NULL; + dst_buf[size] = 0; out = dst_buf; while (data < top) { -- cgit v0.10.2-6-g49f6 From 3292ae4794012994560816e6111d27c809f5e86a Mon Sep 17 00:00:00 2001 From: Martin Langhoff Date: Sun, 4 Sep 2005 22:55:06 +1200 Subject: [PATCH] archimport autodetects import status, supports incremental imports If there is no GIT directory, archimport will assume it is an initial import. It now also supports incremental imports, skipping "seen" commits. You can now run it repeatedly to pull new commits from the Arch repository. Signed-off-by: Martin Langhoff Signed-off-by: Junio C Hamano diff --git a/git-archimport-script b/git-archimport-script index 6ff5d7d..3c8aab7 100755 --- a/git-archimport-script +++ b/git-archimport-script @@ -49,12 +49,12 @@ $SIG{'PIPE'}="IGNORE"; $ENV{'TZ'}="UTC"; our($opt_h,$opt_v, $opt_T, - $opt_C,$opt_t, $opt_i); + $opt_C,$opt_t); sub usage() { print STDERR <{branch} = branchname($ps->{id}); @@ -201,14 +199,22 @@ foreach my $ps (@psets) { } die $! if $?; + # + # skip commits already in repo + # + if (ptag($ps->{id})) { + $opt_v && print "Skipping already imported: $ps->{id}\n"; + next; + } + # # create the branch if needed # - if ($ps->{type} eq 'i' && $importseen) { - die "Should not have more than one 'Initial import' per GIT import"; + if ($ps->{type} eq 'i' && !$import) { + die "Should not have more than one 'Initial import' per GIT import: $ps->{id}"; } - unless ($opt_i && !$importseen) { # skip for first commit + unless ($import) { # skip for import if ( -e ".git/refs/heads/$ps->{branch}") { # we know about this branch `git checkout $ps->{branch}`; @@ -225,13 +231,12 @@ foreach my $ps (@psets) { die $! if $?; } - # # Apply the import/changeset/merge into the working tree # if ($ps->{type} eq 'i' || $ps->{type} eq 't') { - $importseen = 1; apply_import($ps) or die $!; + $import=0; } elsif ($ps->{type} eq 's') { apply_cset($ps); } @@ -577,8 +582,6 @@ sub ptag { } else { # read # if the tag isn't there, return 0 unless ( -s ".git/archimport/tags/$tag") { - warn "Could not find tag $tag -- perhaps it isn't in the repos we have?\n" - if $opt_v; return 0; } open(C,"<.git/archimport/tags/$tag") -- cgit v0.10.2-6-g49f6 From 52586ecb16f2158de29daabb0ed72b094ca8d5cc Mon Sep 17 00:00:00 2001 From: Martin Langhoff Date: Sun, 4 Sep 2005 22:55:29 +1200 Subject: [PATCH] archimport: avoid committing on an Arch tag Arch tags are full commits (without any changed files) as well. Trust Arch to have put an unchanged tree in place (which seems to do reliably), and just add a tag & new branch. Speeds up Arch imports significantly, and leaves history in a much saner state. Signed-off-by: Martin Langhoff Signed-off-by: Junio C Hamano diff --git a/git-archimport-script b/git-archimport-script index 3c8aab7..8f475fd 100755 --- a/git-archimport-script +++ b/git-archimport-script @@ -227,6 +227,14 @@ foreach my $ps (@psets) { # find where we are supposed to branch from `git checkout -b $ps->{branch} $branchpoint`; + + # If we trust Arch with the fact that this is just + # a tag, and it does not affect the state of the tree + # then we just tag and move on + tag($ps->{id}, $branchpoint); + ptag($ps->{id}, $branchpoint); + print " * Tagged $ps->{id} at $branchpoint\n"; + next; } die $! if $?; } -- cgit v0.10.2-6-g49f6 From 07a95d0ed36dea806e32f23df309506be74915db Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sun, 4 Sep 2005 10:37:07 -0700 Subject: git-applymbox: fix '-c'. Earlier round b50abe8843006e9856c633b5abeb4eab53b46629 broke it by carelessly rewriting the main loop. Signed-off-by: Junio C Hamano diff --git a/tools/git-applymbox b/tools/git-applymbox index 2b32dab..e58bb21 100755 --- a/tools/git-applymbox +++ b/tools/git-applymbox @@ -68,7 +68,8 @@ do i="$1" case "$resume,$continue" in f,$i) resume=t;; - f,*) continue;; + f,*) shift + continue;; *) git-mailinfo $keep_subject $utf8 \ .dotest/msg .dotest/patch <$i >.dotest/info || exit 1 -- cgit v0.10.2-6-g49f6 From 433ef8a2fb93627e311217b2a41b3132933e6b0b Mon Sep 17 00:00:00 2001 From: Fredrik Kuivinen Date: Sun, 4 Sep 2005 19:29:02 +0200 Subject: [PATCH] Make git-apply understand incomplete lines in non-C locales The message "\ No newline at end of file" used by diff(1) to mark an incomplete line is locale dependent. We can't assume more than that it begins with "\ ". For example, given two files, "foo" and "bar", with appropriate contents, 'diff -u foo bar' will produce the following output on my system: --- foo 2005-09-04 18:59:38.000000000 +0200 +++ bar 2005-09-04 18:59:16.000000000 +0200 @@ -1 +1 @@ -foobar +foo \ Ingen nyrad vid filslut [jc: the check for the marker still uses the line length being no less than 12 bytes for a sanity check, but I think it is safe to assume that in other locales. I haven't checked the .po files from diff, tho'.] Signed-off-by: Fredrik Kuivinen Signed-off-by: Junio C Hamano diff --git a/apply.c b/apply.c index e87190e..964df2d 100644 --- a/apply.c +++ b/apply.c @@ -672,9 +672,13 @@ static int parse_fragment(char *line, unsigned long size, struct patch *patch, s added++; newlines--; break; - /* We allow "\ No newline at end of file" */ + + /* We allow "\ No newline at end of file". Depending + * on locale settings when the patch was produced we + * don't know what this line looks like. The only + * thing we do know is that it begins with "\ ". */ case '\\': - if (len < 12 || memcmp(line, "\\ No newline", 12)) + if (len < 12 || memcmp(line, "\\ ", 2)) return -1; break; } @@ -683,7 +687,7 @@ static int parse_fragment(char *line, unsigned long size, struct patch *patch, s * it in the above loop because we hit oldlines == newlines == 0 * before seeing it. */ - if (12 < size && !memcmp(line, "\\ No newline", 12)) + if (12 < size && !memcmp(line, "\\ ", 2)) offset += linelen(line, size); patch->lines_added += added; -- cgit v0.10.2-6-g49f6 From c743e6e3c0764ea784f9c13310d0eef5b57c52fb Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sun, 4 Sep 2005 11:25:56 -0700 Subject: Add a link from update-server-info documentation to repository layout. Signed-off-by: Junio C Hamano diff --git a/Documentation/git-update-server-info.txt b/Documentation/git-update-server-info.txt index 830f398..74c4364 100644 --- a/Documentation/git-update-server-info.txt +++ b/Documentation/git-update-server-info.txt @@ -24,8 +24,27 @@ OPTIONS ------- --force:: - Update the info files even when they do not appear - stale. + Update the info files from scratch. + + +OUTPUT +------ + +Currently the command updates the following files. Please see +link:repository-layout.html[repository-layout] for description +of what they are for: + +* objects/info/packs + +* info/refs + +* info/rev-cache + + +BUGS +---- +When you remove an existing ref, the command fails to update +info/refs file unless `--force` flag is given. Author -- cgit v0.10.2-6-g49f6 From 52be5fcd29e074cb549b9a92ff8caceb736e4851 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sun, 4 Sep 2005 15:40:18 -0700 Subject: Add copy/rename check for git-apply. The new test pattern is taken from HPA's klibc and klibc-kbuild trees, which has many interesting renames (the commits 001eef5a19219e5b0601068a3d13874b88c0653e and 0037d1bc0deaf7daec3778496656cb04b4e4b9d0). The test pattern exposes problems in the apply.c changes currently in the proposed updates branch. Signed-off-by: Junio C Hamano diff --git a/t/t4112-apply-renames.sh b/t/t4112-apply-renames.sh new file mode 100755 index 0000000..906188c --- /dev/null +++ b/t/t4112-apply-renames.sh @@ -0,0 +1,148 @@ +#!/bin/sh +# +# Copyright (c) 2005 Junio C Hamano +# + +test_description='git-apply should not get confused with rename/copy. + +' + +. ./test-lib.sh + +# setup + +mkdir -p include/arch/x86_64/klibc klibc/arch/x86_64/include/klibc + +cat >include/arch/x86_64/klibc/archsetjmp.h <<\EOF +/* + * arch/x86_64/include/klibc/archsetjmp.h + */ + +#ifndef _KLIBC_ARCHSETJMP_H +#define _KLIBC_ARCHSETJMP_H + +struct __jmp_buf { + unsigned long __rbx; + unsigned long __rsp; + unsigned long __rbp; + unsigned long __r12; + unsigned long __r13; + unsigned long __r14; + unsigned long __r15; + unsigned long __rip; +}; + +typedef struct __jmp_buf jmp_buf[1]; + +#endif /* _SETJMP_H */ +EOF + +cat >klibc/arch/x86_64/include/klibc/archsetjmp.h <<\EOF +/* + * arch/x86_64/include/klibc/archsetjmp.h + */ + +#ifndef _KLIBC_ARCHSETJMP_H +#define _KLIBC_ARCHSETJMP_H + +struct __jmp_buf { + unsigned long __rbx; + unsigned long __rsp; + unsigned long __rbp; + unsigned long __r12; + unsigned long __r13; + unsigned long __r14; + unsigned long __r15; + unsigned long __rip; +}; + +typedef struct __jmp_buf jmp_buf[1]; + +#endif /* _SETJMP_H */ +EOF + +cat >patch <<\EOF +diff --git a/klibc/arch/x86_64/include/klibc/archsetjmp.h b/include/arch/cris/klibc/archsetjmp.h +similarity index 76% +copy from klibc/arch/x86_64/include/klibc/archsetjmp.h +copy to include/arch/cris/klibc/archsetjmp.h +--- a/klibc/arch/x86_64/include/klibc/archsetjmp.h ++++ b/include/arch/cris/klibc/archsetjmp.h +@@ -1,21 +1,24 @@ + /* +- * arch/x86_64/include/klibc/archsetjmp.h ++ * arch/cris/include/klibc/archsetjmp.h + */ + + #ifndef _KLIBC_ARCHSETJMP_H + #define _KLIBC_ARCHSETJMP_H + + struct __jmp_buf { +- unsigned long __rbx; +- unsigned long __rsp; +- unsigned long __rbp; +- unsigned long __r12; +- unsigned long __r13; +- unsigned long __r14; +- unsigned long __r15; +- unsigned long __rip; ++ unsigned long __r0; ++ unsigned long __r1; ++ unsigned long __r2; ++ unsigned long __r3; ++ unsigned long __r4; ++ unsigned long __r5; ++ unsigned long __r6; ++ unsigned long __r7; ++ unsigned long __r8; ++ unsigned long __sp; ++ unsigned long __srp; + }; + + typedef struct __jmp_buf jmp_buf[1]; + +-#endif /* _SETJMP_H */ ++#endif /* _KLIBC_ARCHSETJMP_H */ +diff --git a/klibc/arch/x86_64/include/klibc/archsetjmp.h b/include/arch/m32r/klibc/archsetjmp.h +similarity index 66% +rename from klibc/arch/x86_64/include/klibc/archsetjmp.h +rename to include/arch/m32r/klibc/archsetjmp.h +--- a/klibc/arch/x86_64/include/klibc/archsetjmp.h ++++ b/include/arch/m32r/klibc/archsetjmp.h +@@ -1,21 +1,21 @@ + /* +- * arch/x86_64/include/klibc/archsetjmp.h ++ * arch/m32r/include/klibc/archsetjmp.h + */ + + #ifndef _KLIBC_ARCHSETJMP_H + #define _KLIBC_ARCHSETJMP_H + + struct __jmp_buf { +- unsigned long __rbx; +- unsigned long __rsp; +- unsigned long __rbp; ++ unsigned long __r8; ++ unsigned long __r9; ++ unsigned long __r10; ++ unsigned long __r11; + unsigned long __r12; + unsigned long __r13; + unsigned long __r14; + unsigned long __r15; +- unsigned long __rip; + }; + + typedef struct __jmp_buf jmp_buf[1]; + +-#endif /* _SETJMP_H */ ++#endif /* _KLIBC_ARCHSETJMP_H */ +EOF + +find include klibc -type f -print | xargs git-update-cache --add -- + +test_expect_success 'check rename/copy patch' 'git-apply --check patch' + +test_expect_success 'apply rename/copy patch' 'git-apply --index patch' + +test_done -- cgit v0.10.2-6-g49f6