小编Alb*_*ert的帖子

什么是裸存储库,为什么我需要它?

这可能已经得到了回答,但我没有找到一个好的答案.
我来自集中式存储库,例如SVN,通常您只执行检出,更新,提交,还原,合并等等.

Git让我发疯.有很多命令,但最难理解的是为什么很多东西都像他们一样工作.

根据"什么是裸git存储库?" :

使用创建的存储库git init --bare称为裸存储库.它们的结构与工作目录略有不同.首先,它们不包含源文件的工作或签出副本.
...
创建的裸存储库git init --bare用于... 共享....开发人员将克隆共享裸仓库,在其仓库的工作副本中进行本地更改,然后回退到共享裸仓库以使其他用户可以使用其更改.
- Jon Saints,http://www.saintsjd.com/2011/01/what-is-a-bare-git-repository/

但是,从接受的答案"github存储库和git裸存储库之间有什么区别?" :

GitHub上的Git repos是裸的,就像你要推送到[sic]的任何远程仓库一样.
- VonC,https://stackoverflow.com/a/20855207

但是,在GitHub中有源文件.我可以看到他们.如果我创建一个裸存储库,则没有源文件,只有.git工作存储库目录的内容.

这怎么可能?我不明白什么?

您能举例说明为什么我需要一个裸存储库及其以这种方式工作的动机吗?

UPDATE

爱德华汤姆森的回答部分是我想知道的.不过,我会重新提出我的问题:

我发布了第一个链接状态("什么是裸git存储库?"):

它们[裸存储库]不包含源文件的工作或签出副本.

VonC的回答:

GitHub上的Git repos是裸的

两个陈述暗示

Github没有工作副本.

爱德华汤姆森说:

它会在您浏览数据时根据数据呈现网页 - 将数据直接从存储库中提取出来并输出到您的Web浏览器,而不是先将数据写入文件服务器上的磁盘

不知何故,裸存储库必须包含所有数据和源代码.如果没有,那么渲染任何东西都不是不可能的,因为我可以看到所有源代码更新(提交),所有分支(具有各自的源),回购的整个日志等.

存储库的整个数据是否始终位于.git目录(或裸存储库)中,以某种格式可以随时呈现所有文件?这是裸存储库的原因,而工作副本只在给定时间有文件吗?

git github git-bare

15
推荐指数
1
解决办法
4465
查看次数

从javamail读取需要很长时间

我使用javamail使用IMAP协议从交易账户中读取邮件.这些邮件是纯文本格式,其内容是XML.

几乎所有这些邮件都有短尺寸(通常低于100Kb).但是,有时我必须处理大邮件(大约10Mb-15Mb).例如,昨天我收到了一封13Mb的电子邮件.只需阅读它就花了50多分钟.这是正常的吗?有没有办法提高其性能?代码是:

Session sesion = Session.getInstance(System.getProperties());
Store store = sesion.getStore("imap");
store.connect(host, user, passwd);
Folder inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_WRITE);

Message[] messages = inbox.search(new FlagTerm(new Flags(Flags.Flag.SEEN), false));
for (int i = 0 ; i< messages.length ; i++){
    Object contents = messages[i].getContent();  // Here it takes 50 min on 13Mb mail
    // ...
}
Run Code Online (Sandbox Code Playgroud)

花费这么长时间的方法是messages[i].getContent().我究竟做错了什么?任何提示?

非常感谢,对不起我的英语!;)

java jakarta-mail

5
推荐指数
2
解决办法
6381
查看次数

检测无效的 XML 字符 (javascript)

昨天我提出了一个关于Detect non valid XML characters in java的问题,这个表达式按预期工作:

\n\n
String xml10pattern = "[^"\n                + "\\u0009\\r\\n" // #x9 | #xA | #xD \n                + "\\u0020-\\uD7FF" // [#x20-#xD7FF]\n                + "\\uE000-\\uFFFD" // [#xE000-#xFFFD] \n                + "\\ud800\\udc00-\\udbff\\udfff" // [#x10000-#x10FFFF]\n                + "]";\n
Run Code Online (Sandbox Code Playgroud)\n\n

然而,我意识到使用 JavaScript 在客户端检查无效字符会更好,但我没有成功。

\n\n

我几乎实现了,除了范围 U+10000\xe2\x80\x93U+10FFFF:http://jsfiddle.net/mymxyjaf/15/

\n\n

对于最后一个范围,我尝试过

\n\n
 var rg = /[^\\u0009\\r\\n\\u0020-\\uD7FF\\uE000-\\uFFFD\\ud800\\udc00-\\udbff\\udfff]/g; \n
Run Code Online (Sandbox Code Playgroud)\n\n

但它不起作用。在regextester中,告诉“范围值反转”。我认为这是因为\\ud800\\udc00-\\udbff\\udfff被解释为3个表达式:

\n\n
\\ud800; \\udc00-\\udbff; \\udfff  \n
Run Code Online (Sandbox Code Playgroud)\n\n

当然,中间那个失败了。

\n\n

所以,我的问题是如何将上面的java正则表达式转换为javascript。

\n\n

谢谢。

\n\n

====更新====

\n\n

感谢@collapsar 评论,我尝试制作两个正则表达式。
\n因此,我意识到我无法否定字符[^...]
\n它会丢弃正确的字符,例如 …

javascript regex

4
推荐指数
1
解决办法
2823
查看次数

标签 统计

git ×1

git-bare ×1

github ×1

jakarta-mail ×1

java ×1

javascript ×1

regex ×1