Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
git
提交
a6e5642f
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,发现更多精彩内容 >>
提交
a6e5642f
编写于
4月 24, 2006
作者:
J
Junio C Hamano
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use cache-tree in update-index.
Signed-off-by:
N
Junio C Hamano
<
junkio@cox.net
>
上级
03ac6e64
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
21 addition
and
2 deletion
+21
-2
update-index.c
update-index.c
+21
-2
未找到文件。
update-index.c
浏览文件 @
a6e5642f
...
...
@@ -6,6 +6,11 @@
#include "cache.h"
#include "strbuf.h"
#include "quote.h"
#include "tree.h"
#include "cache-tree.h"
static
unsigned
char
active_cache_sha1
[
20
];
static
struct
cache_tree
*
active_cache_tree
;
/*
* Default to not allowing changes to the list of files. The
...
...
@@ -70,6 +75,7 @@ static int mark_valid(const char *path)
active_cache
[
pos
]
->
ce_flags
&=
~
htons
(
CE_VALID
);
break
;
}
cache_tree_invalidate_path
(
active_cache_tree
,
path
);
active_cache_changed
=
1
;
return
0
;
}
...
...
@@ -83,6 +89,12 @@ static int add_file_to_cache(const char *path)
struct
stat
st
;
status
=
lstat
(
path
,
&
st
);
/* We probably want to do this in remove_file_from_cache() and
* add_cache_entry() instead...
*/
cache_tree_invalidate_path
(
active_cache_tree
,
path
);
if
(
status
<
0
||
S_ISDIR
(
st
.
st_mode
))
{
/* When we used to have "path" and now we want to add
* "path/file", we need a way to remove "path" before
...
...
@@ -325,6 +337,7 @@ static int add_cacheinfo(unsigned int mode, const unsigned char *sha1,
return
error
(
"%s: cannot add to the index - missing --add option?"
,
path
);
report
(
"add '%s'"
,
path
);
cache_tree_invalidate_path
(
active_cache_tree
,
path
);
return
0
;
}
...
...
@@ -349,6 +362,7 @@ static int chmod_path(int flip, const char *path)
default:
return
-
1
;
}
cache_tree_invalidate_path
(
active_cache_tree
,
path
);
active_cache_changed
=
1
;
return
0
;
}
...
...
@@ -367,6 +381,7 @@ static void update_one(const char *path, const char *prefix, int prefix_length)
die
(
"Unable to mark file %s"
,
path
);
return
;
}
cache_tree_invalidate_path
(
active_cache_tree
,
path
);
if
(
force_remove
)
{
if
(
remove_file_from_cache
(
p
))
...
...
@@ -442,6 +457,7 @@ static void read_index_info(int line_termination)
free
(
path_name
);
continue
;
}
cache_tree_invalidate_path
(
active_cache_tree
,
path_name
);
if
(
!
mode
)
{
/* mode == 0 means there is no such path -- remove */
...
...
@@ -485,9 +501,10 @@ int main(int argc, const char **argv)
if
(
newfd
<
0
)
die
(
"unable to create new cachefile"
);
entries
=
read_cache
(
);
entries
=
read_cache
_1
(
active_cache_sha1
);
if
(
entries
<
0
)
die
(
"cache corrupted"
);
active_cache_tree
=
read_cache_tree
(
active_cache_sha1
);
for
(
i
=
1
;
i
<
argc
;
i
++
)
{
const
char
*
path
=
argv
[
i
];
...
...
@@ -613,9 +630,11 @@ int main(int argc, const char **argv)
}
}
if
(
active_cache_changed
)
{
if
(
write_cache
(
newfd
,
active_cache
,
active_nr
)
||
if
(
write_cache_1
(
newfd
,
active_cache
,
active_nr
,
active_cache_sha1
)
||
commit_index_file
(
&
cache_file
))
die
(
"Unable to write new cachefile"
);
write_cache_tree
(
active_cache_sha1
,
active_cache_tree
);
}
return
has_errors
?
1
:
0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录