Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion book/B-embedding-git/1-embedding-git.asc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
假设你的应用程序的目标人群是开发者,如果它能够被整合进一些源码控制的功能,那真真是极好的。
甚至对于一个例如文档编辑器之类的不是为开发者而设计的应用程序,它们也可能从版本控制系统中受益,并且 Git 的实现方式在很多情况下都表现得非常出色。

如果你想将 Git 整合进你的应用程序的话,一般来说你有三种可能的选择:编写一个外壳并内建 Git 的命令行工具;使用 Libgit2 ;或者使用 JGit
如果你想将 Git 整合进你的应用程序的话,一般来说你有三种可能的选择:启动一个 shell 来使用 Git 的命令行工具;使用 Libgit2;或者使用 JGit。

include::sections/command-line.asc[]

Expand Down
4 changes: 2 additions & 2 deletions book/B-embedding-git/sections/command-line.asc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
=== 命令行 Git 方式

一种方式就是做一个外壳进程并在里面使用 Git 的命令行工具来完成任务。
一种方式就是启动一个 shell 进程并在里面使用 Git 的命令行工具来完成任务。
这种方式看起来很循规蹈矩,但是它的优点也因此而来,就是支持所有的 Git 的特性。
它也碰巧相当简单,因为几乎所有运行时环境都有一个相对简单的方式来调用一个带有命令行参数的进程。
然而,这种方式也有一些固有的缺点。
Expand All @@ -12,5 +12,5 @@
如果一个版本库被莫名其妙地损毁,或者用户使用了一个奇奇怪怪的配置, Git 只会简单地拒绝表现自己的强大能力。

还有一个就是进程的管理。
Git 会要求你在一个独立的进程中维护一个外壳环境,这可能会无谓地增加复杂性。
Git 会要求你在一个独立的进程中维护一个 shell 环境,这可能会无谓地增加复杂性。
试图协调许许多多的类似的进程(尤其是在某些情况下,当不同的进程在访问相同的版本库时)是对你的能力的极大的挑战。