Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
a09c57d6
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a09c57d6
编写于
2月 17, 2017
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
git: cleanup
上级
47e5582d
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
18 addition
and
17 deletion
+18
-17
extensions/git/src/contentProvider.ts
extensions/git/src/contentProvider.ts
+2
-6
extensions/git/src/main.ts
extensions/git/src/main.ts
+2
-7
extensions/git/src/model.ts
extensions/git/src/model.ts
+14
-4
未找到文件。
extensions/git/src/contentProvider.ts
浏览文件 @
a09c57d6
...
...
@@ -6,7 +6,6 @@
'
use strict
'
;
import
{
workspace
,
Uri
,
Disposable
,
Event
,
EventEmitter
}
from
'
vscode
'
;
import
{
filterEvent
}
from
'
./util
'
;
import
{
Model
}
from
'
./model
'
;
export
class
GitContentProvider
{
...
...
@@ -18,12 +17,9 @@ export class GitContentProvider {
private
uris
=
new
Set
<
Uri
>
();
constructor
(
private
model
:
Model
,
onWorkspaceChange
:
Event
<
Uri
>
)
{
const
onGitChange
=
filterEvent
(
onWorkspaceChange
,
uri
=>
/^
\.
git
\/
/
.
test
(
workspace
.
asRelativePath
(
uri
)));
const
onRelevantGitChange
=
filterEvent
(
onGitChange
,
uri
=>
!
/
\/\.
git
\/
index
\.
lock$/
.
test
(
uri
.
fsPath
));
constructor
(
private
model
:
Model
)
{
this
.
disposables
.
push
(
onRelevantGitChange
(
this
.
fireChangeEvents
,
this
),
model
.
onDidChangeRepository
(
this
.
fireChangeEvents
,
this
),
workspace
.
registerTextDocumentContentProvider
(
'
git
'
,
this
)
);
}
...
...
extensions/git/src/main.ts
浏览文件 @
a09c57d6
...
...
@@ -11,7 +11,6 @@ import { Model } from './model';
import
{
GitSCMProvider
}
from
'
./scmProvider
'
;
import
{
CommandCenter
}
from
'
./commands
'
;
import
{
CheckoutStatusBar
,
SyncStatusBar
}
from
'
./statusbar
'
;
import
{
anyEvent
}
from
'
./util
'
;
import
{
GitContentProvider
}
from
'
./contentProvider
'
;
import
{
AutoFetcher
}
from
'
./autofetch
'
;
import
{
MergeDecorator
}
from
'
./merge
'
;
...
...
@@ -34,13 +33,10 @@ async function init(disposables: Disposable[]): Promise<void> {
return
;
}
const
fsWatcher
=
workspace
.
createFileSystemWatcher
(
'
**
'
);
const
onWorkspaceChange
=
anyEvent
(
fsWatcher
.
onDidChange
,
fsWatcher
.
onDidCreate
,
fsWatcher
.
onDidDelete
);
const
pathHint
=
workspace
.
getConfiguration
(
'
git
'
).
get
<
string
>
(
'
path
'
);
const
info
=
await
findGit
(
pathHint
);
const
git
=
new
Git
({
gitPath
:
info
.
path
,
version
:
info
.
version
});
const
model
=
new
Model
(
git
,
rootPath
,
onWorkspaceChange
);
const
model
=
new
Model
(
git
,
rootPath
);
outputChannel
.
appendLine
(
localize
(
'
using git
'
,
"
Using git {0} from {1}
"
,
info
.
version
,
info
.
path
));
git
.
onOutput
(
str
=>
outputChannel
.
append
(
str
),
null
,
disposables
);
...
...
@@ -48,7 +44,7 @@ async function init(disposables: Disposable[]): Promise<void> {
const
commitHandler
=
new
CommitController
();
const
commandCenter
=
new
CommandCenter
(
model
,
outputChannel
);
const
provider
=
new
GitSCMProvider
(
model
,
commandCenter
);
const
contentProvider
=
new
GitContentProvider
(
model
,
onWorkspaceChange
);
const
contentProvider
=
new
GitContentProvider
(
model
);
const
checkoutStatusBar
=
new
CheckoutStatusBar
(
model
);
const
syncStatusBar
=
new
SyncStatusBar
(
model
);
const
autoFetcher
=
new
AutoFetcher
(
model
);
...
...
@@ -59,7 +55,6 @@ async function init(disposables: Disposable[]): Promise<void> {
commandCenter
,
provider
,
contentProvider
,
fsWatcher
,
checkoutStatusBar
,
syncStatusBar
,
autoFetcher
,
...
...
extensions/git/src/model.ts
浏览文件 @
a09c57d6
...
...
@@ -7,7 +7,7 @@
import
{
Uri
,
EventEmitter
,
Event
,
SCMResource
,
SCMResourceDecorations
,
SCMResourceGroup
,
Disposable
,
window
,
workspace
}
from
'
vscode
'
;
import
{
Git
,
Repository
,
Ref
,
Branch
,
Remote
,
PushOptions
,
Commit
,
GitErrorCodes
,
GitError
}
from
'
./git
'
;
import
{
anyEvent
,
eventToPromise
,
filterEvent
,
mapEvent
,
EmptyDisposable
,
combinedDisposable
}
from
'
./util
'
;
import
{
anyEvent
,
eventToPromise
,
filterEvent
,
mapEvent
,
EmptyDisposable
,
combinedDisposable
,
dispose
}
from
'
./util
'
;
import
{
memoize
,
throttle
,
debounce
}
from
'
./decorators
'
;
import
{
watch
}
from
'
./watch
'
;
import
*
as
path
from
'
path
'
;
...
...
@@ -221,6 +221,9 @@ export interface CommitOptions {
export
class
Model
implements
Disposable
{
private
_onDidChangeRepository
=
new
EventEmitter
<
Uri
>
();
readonly
onDidChangeRepository
:
Event
<
Uri
>
=
this
.
_onDidChangeRepository
.
event
;
private
_onDidChangeState
=
new
EventEmitter
<
State
>
();
readonly
onDidChangeState
:
Event
<
State
>
=
this
.
_onDidChangeState
.
event
;
...
...
@@ -303,13 +306,18 @@ export class Model implements Disposable {
this
.
_onDidChangeResources
.
fire
(
this
.
resources
);
}
private
onWorkspaceChange
:
Event
<
Uri
>
;
private
repositoryDisposable
:
Disposable
=
EmptyDisposable
;
private
disposables
:
Disposable
[]
=
[];
constructor
(
private
git
:
Git
,
private
rootPath
:
string
,
private
onWorkspaceChange
:
Event
<
Uri
>
)
{
const
fsWatcher
=
workspace
.
createFileSystemWatcher
(
'
**
'
);
this
.
onWorkspaceChange
=
anyEvent
(
fsWatcher
.
onDidChange
,
fsWatcher
.
onDidCreate
,
fsWatcher
.
onDidDelete
);
this
.
disposables
.
push
(
fsWatcher
);
this
.
status
();
}
...
...
@@ -480,12 +488,13 @@ export class Model implements Disposable {
this
.
repository
=
this
.
git
.
open
(
repositoryRoot
);
const
dotGitPath
=
path
.
join
(
repositoryRoot
,
'
.git
'
);
const
{
event
,
disposable
:
watcher
}
=
watch
(
dotGitPath
);
const
{
event
:
onRawGitChange
,
disposable
:
watcher
}
=
watch
(
dotGitPath
);
disposables
.
push
(
watcher
);
const
onGitChange
=
mapEvent
(
event
,
({
filename
})
=>
Uri
.
file
(
path
.
join
(
dotGitPath
,
filename
)));
const
onGitChange
=
mapEvent
(
onRawGitChange
,
({
filename
})
=>
Uri
.
file
(
path
.
join
(
dotGitPath
,
filename
)));
const
onRelevantGitChange
=
filterEvent
(
onGitChange
,
uri
=>
!
/
\/\.
git
\/
index
\.
lock$/
.
test
(
uri
.
fsPath
));
onRelevantGitChange
(
this
.
onFSChange
,
this
,
disposables
);
onRelevantGitChange
(
this
.
_onDidChangeRepository
.
fire
,
this
.
_onDidChangeRepository
,
disposables
);
const
onNonGitChange
=
filterEvent
(
this
.
onWorkspaceChange
,
uri
=>
!
/
\/\.
git
\/
/
.
test
(
uri
.
fsPath
));
onNonGitChange
(
this
.
onFSChange
,
this
,
disposables
);
...
...
@@ -596,5 +605,6 @@ export class Model implements Disposable {
dispose
():
void
{
this
.
repositoryDisposable
.
dispose
();
this
.
disposables
=
dispose
(
this
.
disposables
);
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录