Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
git
提交
816c02ce
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,发现更多精彩内容 >>
提交
816c02ce
编写于
2月 23, 2006
作者:
J
Junio C Hamano
浏览文件
操作
浏览文件
下载
差异文件
Merge fixes early for next maint series.
上级
1d3d03bb
7bd1527d
变更
9
显示空白变更内容
内联
并排
Showing
9 changed file
with
82 addition
and
18 deletion
+82
-18
commit.c
commit.c
+2
-1
diffcore-rename.c
diffcore-rename.c
+3
-1
git-clone.sh
git-clone.sh
+2
-2
git-merge.sh
git-merge.sh
+2
-2
http-fetch.c
http-fetch.c
+4
-4
read-tree.c
read-tree.c
+62
-2
receive-pack.c
receive-pack.c
+2
-2
refs.c
refs.c
+1
-1
sha1_file.c
sha1_file.c
+4
-3
未找到文件。
commit.c
浏览文件 @
816c02ce
...
...
@@ -212,7 +212,8 @@ int parse_commit_buffer(struct commit *item, void *buffer, unsigned long size)
if
(
memcmp
(
bufptr
,
"tree "
,
5
))
return
error
(
"bogus commit object %s"
,
sha1_to_hex
(
item
->
object
.
sha1
));
if
(
get_sha1_hex
(
bufptr
+
5
,
parent
)
<
0
)
return
error
(
"bad tree pointer in commit %s
\n
"
,
sha1_to_hex
(
item
->
object
.
sha1
));
return
error
(
"bad tree pointer in commit %s"
,
sha1_to_hex
(
item
->
object
.
sha1
));
item
->
tree
=
lookup_tree
(
parent
);
if
(
item
->
tree
)
n_refs
++
;
...
...
diffcore-rename.c
浏览文件 @
816c02ce
...
...
@@ -176,8 +176,10 @@ static int estimate_similarity(struct diff_filespec *src,
/* A delta that has a lot of literal additions would have
* big delta_size no matter what else it does.
*/
if
(
base_size
*
(
MAX_SCORE
-
minimum_score
)
<
delta_size
*
MAX_SCORE
)
if
(
base_size
*
(
MAX_SCORE
-
minimum_score
)
<
delta_size
*
MAX_SCORE
)
{
free
(
delta
);
return
0
;
}
/* Estimate the edit size by interpreting delta. */
if
(
count_delta
(
delta
,
delta_size
,
&
src_copied
,
&
literal_added
))
{
...
...
git-clone.sh
浏览文件 @
816c02ce
...
...
@@ -118,7 +118,7 @@ dir="$2"
[
-e
"
$dir
"
]
&&
echo
"
$dir
already exists."
&&
usage
mkdir
-p
"
$dir
"
&&
D
=
$(
cd
"
$dir
"
&&
pwd
)
&&
trap
'err=$?;
rm -r $D
; exit $err'
exit
trap
'err=$?;
cd ..; rm -r "$D"
; exit $err'
exit
case
"
$bare
"
in
yes
)
GIT_DIR
=
"
$D
"
;;
*
)
GIT_DIR
=
"
$D
/.git"
;;
...
...
@@ -253,7 +253,7 @@ Pull: $head_points_at:$origin" &&
case
"
$no_checkout
"
in
''
)
git
checkout
git
-read-tree
-m
-u
-v
HEAD HEAD
esac
fi
...
...
git-merge.sh
浏览文件 @
816c02ce
...
...
@@ -134,7 +134,7 @@ case "$#,$common,$no_commit" in
echo
"Updating from
$head
to
$1
."
git-update-index
--refresh
2>/dev/null
new_head
=
$(
git-rev-parse
--verify
"
$1
^0"
)
&&
git-read-tree
-u
-m
$head
"
$new_head
"
&&
git-read-tree
-u
-
v
-
m
$head
"
$new_head
"
&&
finish
"
$new_head
"
"Fast forward"
dropsave
exit
0
...
...
@@ -150,7 +150,7 @@ case "$#,$common,$no_commit" in
echo
"Trying really trivial in-index merge..."
git-update-index
--refresh
2>/dev/null
if
git-read-tree
--trivial
-m
-u
$common
$head
"
$1
"
&&
if
git-read-tree
--trivial
-m
-u
-v
$common
$head
"
$1
"
&&
result_tree
=
$(
git-write-tree
)
then
echo
"Wonderful."
...
...
http-fetch.c
浏览文件 @
816c02ce
...
...
@@ -130,7 +130,7 @@ static void start_object_request(struct object_request *obj_req)
if
(
obj_req
->
local
<
0
)
{
obj_req
->
state
=
ABORTED
;
error
(
"Couldn't create temporary file %s for %s: %s
\n
"
,
error
(
"Couldn't create temporary file %s for %s: %s"
,
obj_req
->
tmpfile
,
obj_req
->
filename
,
strerror
(
errno
));
return
;
}
...
...
@@ -830,9 +830,9 @@ static int fetch_object(struct alt_base *repo, unsigned char *sha1)
obj_req
->
errorstr
,
obj_req
->
curl_result
,
obj_req
->
http_code
,
hex
);
}
else
if
(
obj_req
->
zret
!=
Z_STREAM_END
)
{
ret
=
error
(
"File %s (%s) corrupt
\n
"
,
hex
,
obj_req
->
url
);
ret
=
error
(
"File %s (%s) corrupt"
,
hex
,
obj_req
->
url
);
}
else
if
(
memcmp
(
obj_req
->
sha1
,
obj_req
->
real_sha1
,
20
))
{
ret
=
error
(
"File %s has bad hash
\n
"
,
hex
);
ret
=
error
(
"File %s has bad hash"
,
hex
);
}
else
if
(
obj_req
->
rename
<
0
)
{
ret
=
error
(
"unable to write sha1 filename %s"
,
obj_req
->
filename
);
...
...
@@ -854,7 +854,7 @@ int fetch(unsigned char *sha1)
fetch_alternates
(
alt
->
base
);
altbase
=
altbase
->
next
;
}
return
error
(
"Unable to find %s under %s
\n
"
,
sha1_to_hex
(
sha1
),
return
error
(
"Unable to find %s under %s"
,
sha1_to_hex
(
sha1
),
alt
->
base
);
}
...
...
read-tree.c
浏览文件 @
816c02ce
...
...
@@ -9,6 +9,8 @@
#include "object.h"
#include "tree.h"
#include <sys/time.h>
#include <signal.h>
static
int
merge
=
0
;
static
int
update
=
0
;
...
...
@@ -16,6 +18,8 @@ static int index_only = 0;
static
int
nontrivial_merge
=
0
;
static
int
trivial_merges_only
=
0
;
static
int
aggressive
=
0
;
static
int
verbose_update
=
0
;
static
volatile
int
progress_update
=
0
;
static
int
head_idx
=
-
1
;
static
int
merge_size
=
0
;
...
...
@@ -267,6 +271,12 @@ static void unlink_entry(char *name)
}
}
static
void
progress_interval
(
int
signum
)
{
signal
(
SIGALRM
,
progress_interval
);
progress_update
=
1
;
}
static
void
check_updates
(
struct
cache_entry
**
src
,
int
nr
)
{
static
struct
checkout
state
=
{
...
...
@@ -276,8 +286,49 @@ static void check_updates(struct cache_entry **src, int nr)
.
refresh_cache
=
1
,
};
unsigned
short
mask
=
htons
(
CE_UPDATE
);
unsigned
last_percent
=
200
,
cnt
=
0
,
total
=
0
;
if
(
update
&&
verbose_update
)
{
struct
itimerval
v
;
for
(
total
=
cnt
=
0
;
cnt
<
nr
;
cnt
++
)
{
struct
cache_entry
*
ce
=
src
[
cnt
];
if
(
!
ce
->
ce_mode
||
ce
->
ce_flags
&
mask
)
total
++
;
}
/* Don't bother doing this for very small updates */
if
(
total
<
250
)
total
=
0
;
if
(
total
)
{
v
.
it_interval
.
tv_sec
=
1
;
v
.
it_interval
.
tv_usec
=
0
;
v
.
it_value
=
v
.
it_interval
;
signal
(
SIGALRM
,
progress_interval
);
setitimer
(
ITIMER_REAL
,
&
v
,
NULL
);
fprintf
(
stderr
,
"Checking files out...
\n
"
);
progress_update
=
1
;
}
cnt
=
0
;
}
while
(
nr
--
)
{
struct
cache_entry
*
ce
=
*
src
++
;
if
(
total
)
{
if
(
!
ce
->
ce_mode
||
ce
->
ce_flags
&
mask
)
{
unsigned
percent
;
cnt
++
;
percent
=
(
cnt
*
100
)
/
total
;
if
(
percent
!=
last_percent
||
progress_update
)
{
fprintf
(
stderr
,
"%4u%% (%u/%u) done
\r
"
,
percent
,
cnt
,
total
);
last_percent
=
percent
;
}
}
}
if
(
!
ce
->
ce_mode
)
{
if
(
update
)
unlink_entry
(
ce
->
name
);
...
...
@@ -289,6 +340,10 @@ static void check_updates(struct cache_entry **src, int nr)
checkout_entry
(
ce
,
&
state
);
}
}
if
(
total
)
{
fputc
(
'\n'
,
stderr
);
signal
(
SIGALRM
,
SIG_IGN
);
}
}
static
int
unpack_trees
(
merge_fn_t
fn
)
...
...
@@ -564,7 +619,7 @@ static int twoway_merge(struct cache_entry **src)
struct
cache_entry
*
oldtree
=
src
[
1
],
*
newtree
=
src
[
2
];
if
(
merge_size
!=
2
)
return
error
(
"Cannot do a twoway merge of %d trees
\n
"
,
return
error
(
"Cannot do a twoway merge of %d trees"
,
merge_size
);
if
(
current
)
{
...
...
@@ -616,7 +671,7 @@ static int oneway_merge(struct cache_entry **src)
struct
cache_entry
*
a
=
src
[
1
];
if
(
merge_size
!=
1
)
return
error
(
"Cannot do a oneway merge of %d trees
\n
"
,
return
error
(
"Cannot do a oneway merge of %d trees"
,
merge_size
);
if
(
!
a
)
...
...
@@ -680,6 +735,11 @@ int main(int argc, char **argv)
continue
;
}
if
(
!
strcmp
(
arg
,
"-v"
))
{
verbose_update
=
1
;
continue
;
}
/* "-i" means "index only", meaning that a merge will
* not even look at the working tree.
*/
...
...
receive-pack.c
浏览文件 @
816c02ce
...
...
@@ -92,7 +92,7 @@ static int run_update_hook(const char *refname,
case
-
ERR_RUN_COMMAND_WAITPID_WRONG_PID
:
return
error
(
"waitpid is confused"
);
case
-
ERR_RUN_COMMAND_WAITPID_SIGNAL
:
return
error
(
"%s died of signal
\n
"
,
update_hook
);
return
error
(
"%s died of signal"
,
update_hook
);
case
-
ERR_RUN_COMMAND_WAITPID_NOEXIT
:
return
error
(
"%s died strangely"
,
update_hook
);
default:
...
...
@@ -158,7 +158,7 @@ static int update(struct command *cmd)
if
(
run_update_hook
(
name
,
old_hex
,
new_hex
))
{
unlink
(
lock_name
);
cmd
->
error_string
=
"hook declined"
;
return
error
(
"hook declined to update %s
\n
"
,
name
);
return
error
(
"hook declined to update %s"
,
name
);
}
else
if
(
rename
(
lock_name
,
name
)
<
0
)
{
unlink
(
lock_name
);
...
...
refs.c
浏览文件 @
816c02ce
...
...
@@ -268,7 +268,7 @@ static int write_ref_file(const char *filename,
char
term
=
'\n'
;
if
(
write
(
fd
,
hex
,
40
)
<
40
||
write
(
fd
,
&
term
,
1
)
<
1
)
{
error
(
"Couldn't write %s
\n
"
,
filename
);
error
(
"Couldn't write %s"
,
filename
);
close
(
fd
);
return
-
1
;
}
...
...
sha1_file.c
浏览文件 @
816c02ce
...
...
@@ -564,7 +564,7 @@ static void prepare_packed_git_one(char *objdir, int local)
dir
=
opendir
(
path
);
if
(
!
dir
)
{
if
(
errno
!=
ENOENT
)
error
(
"unable to open object pack directory: %s: %s
\n
"
,
error
(
"unable to open object pack directory: %s: %s"
,
path
,
strerror
(
errno
));
return
;
}
...
...
@@ -1513,7 +1513,8 @@ int write_sha1_from_fd(const unsigned char *sha1, int fd, char *buffer,
local
=
mkstemp
(
tmpfile
);
if
(
local
<
0
)
return
error
(
"Couldn't open %s for %s
\n
"
,
tmpfile
,
sha1_to_hex
(
sha1
));
return
error
(
"Couldn't open %s for %s"
,
tmpfile
,
sha1_to_hex
(
sha1
));
memset
(
&
stream
,
0
,
sizeof
(
stream
));
...
...
@@ -1561,7 +1562,7 @@ int write_sha1_from_fd(const unsigned char *sha1, int fd, char *buffer,
}
if
(
memcmp
(
sha1
,
real_sha1
,
20
))
{
unlink
(
tmpfile
);
return
error
(
"File %s has bad hash
\n
"
,
sha1_to_hex
(
sha1
));
return
error
(
"File %s has bad hash"
,
sha1_to_hex
(
sha1
));
}
return
move_temp_to_file
(
tmpfile
,
sha1_file_name
(
sha1
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录