Atlassian SourceTree自定义动作对比

问题描述 投票:5回答:3

签出新分支后,我想通过Atlassian SourceTree(版本1.4.0.0)停止跟踪.classpath等文件。我创建了一个自定义操作,其详细信息如下:

然后,从“工作副本更改”面板中,我选择了一个文件,右键单击它并尝试执行“假定未更改”自定义命令。但是,我得到了这个完全“吝啬”的错误消息:

我在上面的错误消息中复制了完整命令,并尝试从命令行执行它:

有趣的是,它奏效了。

有人可以通过右键单击并从菜单中选择,告诉我为什么这个自定义操作无法在第一个位置工作?

eclipse windows git version-control atlassian-sourcetree
3个回答
2
投票

这是有趣的。我刚刚在自己的设置中发现了这个问题,而之前正在运行的基于git的命令现在不再起作用了。我假设在最近的SourceTree版本中发生了一些变化。我相信现在调用的问题是命令不会像在SourceTree中打开终端时所预期的那样配置完整的环境设置。 Completed with errors消息是未找到命令的结果。

对于我自己的设置,我通过使用cmd进程构建自定义操作来解决此问题。例如:

  • 标题:所选提交的完整索引修补程序
  • 要运行的脚本:cmd

带参数:

/c %LOCALAPPDATA%\Atlassian\SourceTree\git_local\bin\sh.exe --login -i -c 'git format-patch --full-index -1 $SHA'

另一个例子:

  • 文字说明:工作指数的完整指数补丁
  • 要运行的脚本:cmd

带参数:

/c %LOCALAPPDATA%\Atlassian\SourceTree\git_local\bin\sh.exe --login -i -c ^"git diff --full-index --cached > patch.diff^"

(这些示例假设您在SourceTree中使用嵌入式Git)

使用SourceTree 1.6.12和Git 1.8.3。


0
投票

检查$FILE是否代表您选择的文件的完整路径。 它似乎以“Custom actions – more power to you”的方式呈现(2012年2月,自定义动作被引入Atlassian Source Tree 1.3+)。

如果是这种情况,使用$FILE而不是C:/Repository/$FILE就足够了。


0
投票

我最近在Windows中使用SourceTree自定义操作获得了一些自定义操作:

git stash + pull + unstash in Windows

要运行的脚本:cmd 参数:/c %LOCALAPPDATA%\Atlassian\SourceTree\git_local\bin\sh.exe -c -e 'alias git=/c/Users/%username%/AppData/Local/Atlassian/SourceTree/git_local/cmd/git.exe; git stash; git pull --rebase; git stash pop'

如果您安装了多个版本的git,则会处理此问题,如果它在中途失败,则会提前退出。

git stash + pull + unstash in MacOS

MacOS中的粗略等价物如下:

要运行的脚本:/path/to/stash_unstash.sh 参数:$REPO

说他是_u你说他是.是

#!/usr/bin/env bash

cd $1
git stash && git pull --rebase && git stash pop
© www.soinside.com 2019 - 2024. All rights reserved.