开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
标签 (455)
master
bk-7.3.3
bk-7.3.2
bk-7.3ce
bk-7.3ce-rc1
bk-7.2.1ce
bk-7.2ce
bk-oss-7.2-pre1
bk-7.1
bk-7.0.3
bk-7.0.2
bk-7.0.1
bk-7.0
bk-6.1.3
bk-6.1.2
bk-6.1.1
bk-6.1
bk-6.0.3
bk-6.0.2c
bk-6.0.2b
bk-6.0.2
master
分支 (1)
标签 (455)
master
bk-7.3.3
bk-7.3.2
bk-7.3ce
bk-7.3ce-rc1
bk-7.2.1ce
bk-7.2ce
bk-oss-7.2-pre1
bk-7.1
bk-7.0.3
bk-7.0.2
bk-7.0.1
bk-7.0
bk-6.1.3
bk-6.1.2
bk-6.1.1
bk-6.1
bk-6.0.3
bk-6.0.2c
bk-6.0.2b
bk-6.0.2
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
标签 (455)
master
bk-7.3.3
bk-7.3.2
bk-7.3ce
bk-7.3ce-rc1
bk-7.2.1ce
bk-7.2ce
bk-oss-7.2-pre1
bk-7.1
bk-7.0.3
bk-7.0.2
bk-7.0.1
bk-7.0
bk-6.1.3
bk-6.1.2
bk-6.1.1
bk-6.1
bk-6.0.3
bk-6.0.2c
bk-6.0.2b
bk-6.0.2
bitkeeper
/
src
/
libcommit.c
bitkeeper
/
src
/
libcommit.c
libcommit.c 3.57 KB
一键复制 编辑 原始数据 按行查看 历史
Oscar Bonilla 提交于 2016年02月26日 06:21 +08:00 . Apache License 2.0
/*
* Copyright 1999-2011,2014-2016 BitMover, Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "system.h"
#include "sccs.h"
#include <time.h>
void
do_prsdelta(char *file, char *rev, int flags, char *dspec, FILE *out)
{
sccs *s;
ser_t d;
s = sccs_init(file, INIT_NOCKSUM);
assert(s);
s->state &= ~S_SET;
d = sccs_findrev(s, rev);
sccs_prsdelta(s, d, flags, dspec, out);
sccs_free(s);
}
int
get(char *path, int flags)
{
sccs *s;
int ret;
if (sccs_filetype(path) == 's') {
s = sccs_init(path, SILENT|INIT_MUSTEXIST);
} else {
char *p = name2sccs(path);
s = sccs_init(p, SILENT|INIT_MUSTEXIST);
free(p);
}
unless (s && HASGRAPH(s)) {
if (s) sccs_free(s);
return (-1);
}
ret = sccs_get(s, 0, 0, 0, 0, flags, s->gfile, 0);
sccs_free(s);
return (ret ? -1 : 0);
}
private void
line(char b, FILE *f)
{
int i;
for (i = 0; i < 79; ++i) fputc(b, f);
fputc('\n', f);
}
int
getMsg(char *msg_name, char *bkarg, char b, FILE *outf)
{
char **args;
int rc;
unless (bkarg) bkarg = "";
args = addLine(0, bkarg);
rc = getMsgv(msg_name, args, 0, b, outf);
freeLines(args, 0);
return (rc);
}
int
getMsgP(char *msg_name, char *bkarg, char *prefix, char b, FILE *outf)
{
char **args;
int rc;
unless (bkarg) bkarg = "";
args = addLine(0, bkarg);
rc = getMsgv(msg_name, args, prefix, b, outf);
freeLines(args, 0);
return (rc);
}
int
getMsg2(char *msg_name, char *arg1, char *arg2, char b, FILE *outf)
{
char **args;
int rc;
args = addLine(0, arg1);
args = addLine(args, arg2);
rc = getMsgv(msg_name, args, 0, b, outf);
freeLines(args, 0);
return (rc);
}
int
getMsgv(char *msg_name, char **bkargs, char *prefix, char b, FILE *outf)
{
FILE *f, *f1;
int found = 0;
int first = 1;
int n;
char buf[MAXLINE], pattern[MAXLINE];
unless (msg_name) return (0);
sprintf(buf, "%s/bkmsg.txt", bin);
unless (f = fopen(buf, "rt")) {
fprintf(stderr, "Unable to open %s\n", buf);
exit(1);
}
sprintf(pattern, "#%s\n", msg_name);
while (fgets(buf, sizeof(buf), f)) {
if (streq(pattern, buf)) {
found = 1;
break;
}
}
if (found && b) line(b, outf);
while (fgets(buf, sizeof(buf), f)) {
char *p, *b;
if (first && (buf[0] == '#')) continue;
first = 0;
if (streq("$\n", buf)) break;
if (prefix) fputs(prefix, outf);
/*
* #BKARG# or #BKARG#1# is the first entry.
* #BKARG#%d# is the Nth arg.
*/
if (p = strstr(buf, "#BKARG#")) {
b = buf;
do {
*p = 0;
p += 7;
/* #BKARG#%d# */
if (isdigit(*p)) {
n = atoi(p);
p = strchr(p, '#');
assert(p);
p++;
} else {
n = 1;
}
fputs(b, outf);
if (n <= nLines(bkargs)) {
fputs(bkargs[n], outf);
} else {
// not enough arguments
fprintf(outf, "#BKARG#%d#", n);
}
b = p;
} while (p = strstr(b, "#BKARG#"));
fputs(b, outf);
} else if (p = strstr(buf, "#BKEXEC#")) {
if (f1 = popen(&p[8], "r")) {
while (fgets(buf, sizeof (buf), f1)) {
fputs("\t", outf);
fputs(buf, outf);
}
pclose(f1);
}
*p = 0;
} else {
fputs(buf, outf);
}
}
fclose(f);
if (found && b) line(b, outf);
return (found);
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

暂无描述
暂无标签
Apache-2.0
使用 Apache-2.0 开源许可协议
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/arogee/bitkeeper.git
git@gitee.com:arogee/bitkeeper.git
arogee
bitkeeper
bitkeeper
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /