Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
4b2df591
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4b2df591
编写于
9月 13, 2018
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'pr/54300'
上级
5553d6e0
ca7ae008
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
85 addition
and
13 deletion
+85
-13
extensions/git/package.json
extensions/git/package.json
+28
-0
extensions/git/package.nls.json
extensions/git/package.nls.json
+2
-0
extensions/git/src/commands.ts
extensions/git/src/commands.ts
+40
-11
extensions/git/src/git.ts
extensions/git/src/git.ts
+11
-2
extensions/git/src/repository.ts
extensions/git/src/repository.ts
+4
-0
未找到文件。
extensions/git/package.json
浏览文件 @
4b2df591
...
...
@@ -339,6 +339,16 @@
"command"
:
"git.stashPopLatest"
,
"title"
:
"%command.stashPopLatest%"
,
"category"
:
"Git"
},
{
"command"
:
"git.stashApply"
,
"title"
:
"%command.stashApply%"
,
"category"
:
"Git"
},
{
"command"
:
"git.stashApplyLatest"
,
"title"
:
"%command.stashApplyLatest%"
,
"category"
:
"Git"
}
],
"menus"
:
{
...
...
@@ -550,6 +560,14 @@
{
"command"
:
"git.stashPopLatest"
,
"when"
:
"config.git.enabled && gitOpenRepositoryCount != 0"
},
{
"command"
:
"git.stashApply"
,
"when"
:
"config.git.enabled && gitOpenRepositoryCount != 0"
},
{
"command"
:
"git.stashApplyLatest"
,
"when"
:
"config.git.enabled && gitOpenRepositoryCount != 0"
}
],
"scm/title"
:
[
...
...
@@ -678,6 +696,16 @@
"group"
:
"5_stash"
,
"when"
:
"scmProvider == git"
},
{
"command"
:
"git.stashApply"
,
"group"
:
"5_stash"
,
"when"
:
"scmProvider == git"
},
{
"command"
:
"git.stashApplyLatest"
,
"group"
:
"5_stash"
,
"when"
:
"scmProvider == git"
},
{
"command"
:
"git.showOutput"
,
"group"
:
"7_repository"
,
...
...
extensions/git/package.nls.json
浏览文件 @
4b2df591
...
...
@@ -52,6 +52,8 @@
"command.stash"
:
"Stash"
,
"command.stashPop"
:
"Pop Stash..."
,
"command.stashPopLatest"
:
"Pop Latest Stash"
,
"command.stashApply"
:
"Apply Stash..."
,
"command.stashApplyLatest"
:
"Apply Latest Stash"
,
"config.enabled"
:
"Whether git is enabled."
,
"config.path"
:
"Path and filename of the git executable, e.g. `C:
\\
Program Files
\\
Git
\\
bin
\\
git.exe` (Windows)."
,
"config.autoRepositoryDetection"
:
"Configures when repositories should be automatically detected."
,
...
...
extensions/git/src/commands.ts
浏览文件 @
4b2df591
...
...
@@ -6,7 +6,7 @@
'
use strict
'
;
import
{
Uri
,
commands
,
Disposable
,
window
,
workspace
,
QuickPickItem
,
OutputChannel
,
Range
,
WorkspaceEdit
,
Position
,
LineChange
,
SourceControlResourceState
,
TextDocumentShowOptions
,
ViewColumn
,
ProgressLocation
,
TextEditor
,
MessageOptions
}
from
'
vscode
'
;
import
{
Git
,
CommitOptions
}
from
'
./git
'
;
import
{
Git
,
CommitOptions
,
Stash
}
from
'
./git
'
;
import
{
Repository
,
Resource
,
Status
,
ResourceGroupType
}
from
'
./repository
'
;
import
{
Model
}
from
'
./model
'
;
import
{
toGitUri
,
fromGitUri
}
from
'
./uri
'
;
...
...
@@ -1701,34 +1701,63 @@ export class CommandCenter {
@
command
(
'
git.stashPop
'
,
{
repository
:
true
})
async
stashPop
(
repository
:
Repository
):
Promise
<
void
>
{
const
placeHolder
=
localize
(
'
pick stash to pop
'
,
"
Pick a stash to pop
"
);
const
stash
=
await
this
.
pickStash
(
repository
,
placeHolder
);
if
(
!
stash
)
{
return
;
}
await
repository
.
popStash
(
stash
.
index
);
}
@
command
(
'
git.stashPopLatest
'
,
{
repository
:
true
})
async
stashPopLatest
(
repository
:
Repository
):
Promise
<
void
>
{
const
stashes
=
await
repository
.
getStashes
();
if
(
stashes
.
length
===
0
)
{
window
.
showInformationMessage
(
localize
(
'
no stashes
'
,
"
There are no stashes
to restore
.
"
));
window
.
showInformationMessage
(
localize
(
'
no stashes
'
,
"
There are no stashes
in the repository
.
"
));
return
;
}
const
picks
=
stashes
.
map
(
r
=>
({
label
:
`#
${
r
.
index
}
:
${
r
.
description
}
`
,
description
:
''
,
details
:
''
,
id
:
r
.
index
}));
const
placeHolder
=
localize
(
'
pick stash to pop
'
,
"
Pick a stash to pop
"
);
const
choice
=
await
window
.
showQuickPick
(
picks
,
{
placeHolder
});
await
repository
.
popStash
();
}
if
(
!
choice
)
{
@
command
(
'
git.stashApply
'
,
{
repository
:
true
})
async
stashApply
(
repository
:
Repository
):
Promise
<
void
>
{
const
placeHolder
=
localize
(
'
pick stash to apply
'
,
"
Pick a stash to apply
"
);
const
stash
=
await
this
.
pickStash
(
repository
,
placeHolder
);
if
(
!
stash
)
{
return
;
}
await
repository
.
popStash
(
choice
.
id
);
await
repository
.
applyStash
(
stash
.
index
);
}
@
command
(
'
git.stash
Pop
Latest
'
,
{
repository
:
true
})
async
stash
Pop
Latest
(
repository
:
Repository
):
Promise
<
void
>
{
@
command
(
'
git.stash
Apply
Latest
'
,
{
repository
:
true
})
async
stash
Apply
Latest
(
repository
:
Repository
):
Promise
<
void
>
{
const
stashes
=
await
repository
.
getStashes
();
if
(
stashes
.
length
===
0
)
{
window
.
showInformationMessage
(
localize
(
'
no stashes
'
,
"
There are no stashes
to restore
.
"
));
window
.
showInformationMessage
(
localize
(
'
no stashes
'
,
"
There are no stashes
in the repository
.
"
));
return
;
}
await
repository
.
popStash
();
await
repository
.
applyStash
();
}
private
async
pickStash
(
repository
:
Repository
,
placeHolder
:
string
):
Promise
<
Stash
|
undefined
>
{
const
stashes
=
await
repository
.
getStashes
();
if
(
stashes
.
length
===
0
)
{
window
.
showInformationMessage
(
localize
(
'
no stashes
'
,
"
There are no stashes in the repository.
"
));
return
;
}
const
picks
=
stashes
.
map
(
stash
=>
({
label
:
`#
${
stash
.
index
}
:
${
stash
.
description
}
`
,
description
:
''
,
details
:
''
,
stash
}));
const
result
=
await
window
.
showQuickPick
(
picks
,
{
placeHolder
});
return
result
&&
result
.
stash
;
}
private
createCommand
(
id
:
string
,
key
:
string
,
method
:
Function
,
options
:
CommandOptions
):
(...
args
:
any
[])
=>
any
{
...
...
extensions/git/src/git.ts
浏览文件 @
4b2df591
...
...
@@ -1255,9 +1255,17 @@ export class Repository {
}
async
popStash
(
index
?:
number
):
Promise
<
void
>
{
try
{
const
args
=
[
'
stash
'
,
'
pop
'
];
const
args
=
[
'
stash
'
,
'
pop
'
];
this
.
popOrApplyStash
(
args
,
index
);
}
async
applyStash
(
index
?:
number
):
Promise
<
void
>
{
const
args
=
[
'
stash
'
,
'
apply
'
];
this
.
popOrApplyStash
(
args
,
index
);
}
private
async
popOrApplyStash
(
args
:
string
[],
index
?:
number
):
Promise
<
void
>
{
try
{
if
(
typeof
index
===
'
number
'
)
{
args
.
push
(
`stash@{
${
index
}
}`
);
}
...
...
@@ -1274,6 +1282,7 @@ export class Repository {
}
}
getStatus
(
limit
=
5000
):
Promise
<
{
status
:
IFileStatus
[];
didHitLimit
:
boolean
;
}
>
{
return
new
Promise
<
{
status
:
IFileStatus
[];
didHitLimit
:
boolean
;
}
>
((
c
,
e
)
=>
{
const
parser
=
new
GitStatusParser
();
...
...
extensions/git/src/repository.ts
浏览文件 @
4b2df591
...
...
@@ -1073,6 +1073,10 @@ export class Repository implements Disposable {
return
await
this
.
run
(
Operation
.
Stash
,
()
=>
this
.
repository
.
popStash
(
index
));
}
async
applyStash
(
index
?:
number
):
Promise
<
void
>
{
return
await
this
.
run
(
Operation
.
Stash
,
()
=>
this
.
repository
.
applyStash
(
index
));
}
async
getCommitTemplate
():
Promise
<
string
>
{
return
await
this
.
run
(
Operation
.
GetCommitTemplate
,
async
()
=>
this
.
repository
.
getCommitTemplate
());
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录