Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
git
提交
f5f2c52b
G
git
项目概览
李少辉-开发者
/
git
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
git
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f5f2c52b
编写于
9月 04, 2005
作者:
J
Junio C Hamano
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of .
上级
8afaf4cb
52be5fcd
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
374 addition
and
35 deletion
+374
-35
Documentation/Makefile
Documentation/Makefile
+1
-0
Documentation/git-applymbox.txt
Documentation/git-applymbox.txt
+6
-0
Documentation/git-applypatch.txt
Documentation/git-applypatch.txt
+4
-0
Documentation/git-commit-script.txt
Documentation/git-commit-script.txt
+12
-2
Documentation/git-ls-files.txt
Documentation/git-ls-files.txt
+2
-2
Documentation/git-receive-pack.txt
Documentation/git-receive-pack.txt
+6
-0
Documentation/git-update-server-info.txt
Documentation/git-update-server-info.txt
+21
-2
Documentation/hooks.txt
Documentation/hooks.txt
+128
-0
apply.c
apply.c
+7
-3
cache.h
cache.h
+1
-1
git-archimport-script
git-archimport-script
+28
-17
local-pull.c
local-pull.c
+5
-5
patch-delta.c
patch-delta.c
+2
-1
sha1_file.c
sha1_file.c
+1
-1
t/t4112-apply-renames.sh
t/t4112-apply-renames.sh
+148
-0
tools/git-applymbox
tools/git-applymbox
+2
-1
未找到文件。
Documentation/Makefile
浏览文件 @
f5f2c52b
...
...
@@ -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
...
...
Documentation/git-applymbox.txt
浏览文件 @
f5f2c52b
...
...
@@ -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 <torvalds@osdl.org>
...
...
Documentation/git-applypatch.txt
浏览文件 @
f5f2c52b
...
...
@@ -16,6 +16,10 @@ Takes three files <msg>, <patch>, and <info> 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
-------
...
...
Documentation/git-commit-script.txt
浏览文件 @
f5f2c52b
...
...
@@ -8,7 +8,7 @@ git-commit-script - Record your changes
SYNOPSIS
--------
'git commit' [-a] [-s] [-v] [(-c | -C) <commit> | -F <file> | -m <msg>] <file>...
'git commit' [-a] [-s] [-v] [(-c | -C) <commit> | -F <file> | -m <msg>]
[-e]
<file>...
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.
<file>...::
Update specified paths in the index file.
Update specified paths in the index file
before committing
.
Author
...
...
Documentation/git-ls-files.txt
浏览文件 @
f5f2c52b
...
...
@@ -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-cach
e for more information on state)
path. (see
git-read-tre
e for more information on state)
Exclude Patterns
...
...
@@ -180,7 +180,7 @@ An example:
See Also
--------
link:
read-cache.html[read-cach
e]
link:
git-read-tree.html[git-read-tre
e]
Author
...
...
Documentation/git-receive-pack.txt
浏览文件 @
f5f2c52b
...
...
@@ -77,6 +77,12 @@ OPTIONS
<directory>::
The repository to sync into.
SEE ALSO
--------
link:git-send-pack.html[git-send-pack]
Author
------
Written by Linus Torvalds <torvalds@osdl.org>
...
...
Documentation/git-update-server-info.txt
浏览文件 @
f5f2c52b
...
...
@@ -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
...
...
Documentation/hooks.txt
0 → 100644
浏览文件 @
f5f2c52b
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.
apply.c
浏览文件 @
f5f2c52b
...
...
@@ -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"
,
1
2
))
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"
,
1
2
))
if
(
12
<
size
&&
!
memcmp
(
line
,
"
\\
"
,
2
))
offset
+=
linelen
(
line
,
size
);
patch
->
lines_added
+=
added
;
...
...
cache.h
浏览文件 @
f5f2c52b
...
...
@@ -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
);
...
...
git-archimport-script
浏览文件 @
f5f2c52b
...
...
@@ -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
<<END;
Usage: ${\basename $0} # fetch/update GIT from Arch
[ -h ] [ -v ] [ -
i ] [ -
T ]
[ -h ] [ -v ] [ -T ]
[ -C GIT_repository ] [ -t tempdir ]
repository/arch-branch [ repository/arch-branch] ...
END
...
...
@@ -173,21 +173,19 @@ foreach my $root (@arch_roots) {
## TODO cleanup irrelevant patches
## and put an initial import
## or a full tag
if
(
$opt_i
)
{
# initial import
my
$import
=
0
;
unless
(
-
d
'
.git
')
{
# initial import
if
(
$psets
[
0
]{
type
}
eq
'
i
'
||
$psets
[
0
]{
type
}
eq
'
t
')
{
print
"
Starting import from
$psets
[0]{id}
\n
";
`
git-init-db
`;
die
$!
if
$?
;
$import
=
1
;
}
else
{
die
"
Need to start from an import or a tag -- cannot use
$psets
[0]{id}
";
}
`
git-init-db
`;
die
$!
if
$?
;
}
# process
my
$lastbranch
=
branchname
(
$psets
[
0
]{
id
});
# only good for initial import
my
$importseen
=
$opt_i
?
0
:
1
;
# start at 1 if opt_i
# process patchsets
foreach
my
$ps
(
@psets
)
{
$ps
->
{
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 commi
t
unless
(
$
import
)
{
# skip for impor
t
if
(
-
e
"
.git/refs/heads/
$ps
->{branch}
")
{
# we know about this branch
`
git checkout
$ps
->{branch}
`;
...
...
@@ -221,17 +227,24 @@ 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
$?
;
}
#
# 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 +590,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
"
)
...
...
local-pull.c
浏览文件 @
f5f2c52b
...
...
@@ -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
];
...
...
patch-delta.c
浏览文件 @
f5f2c52b
...
...
@@ -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
)
{
...
...
sha1_file.c
浏览文件 @
f5f2c52b
...
...
@@ -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
;
...
...
t/t4112-apply-renames.sh
0 → 100755
浏览文件 @
f5f2c52b
#!/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
tools/git-applymbox
浏览文件 @
f5f2c52b
...
...
@@ -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
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录