如何使用git正确处理GreaseMonkey用户脚本?

时间:2015-06-13 10:50:01

标签: git github greasemonkey project-management userscripts

我正在处理Firefox的用户脚本,因此我使用了GreaseMonkey。此外,为了便于开发,我使用git来更新我的代码的不同版本。

现在,让我试着解释一下这个问题。

当我从我的本地git目录向GreaseMonkey添加用户脚本时,则会在我的Firefox配置文件的gm_scripts文件夹中创建新文件。

GreaseMonkey使用这些文件作为源而不是我的git目录,所以如果我想修改我的代码并测试一些东西,我必须更改gm_scripts中的文件。这意味着我无法提交修改,我首先要将文件从gm_scripts复制到我的git目录。这真的很不方便。

还有另一种解决方案。我也可以从我的git目录修改脚本,然后使用指向这些本地文件的书签将其重新安装到GreaseMonkey。但再一次,这根本不方便。

我认为第三个是将gm_scripts中的文件夹定义为我的git目录。不幸的是,我的项目包含许多文件,我订购到文件夹中,我想保持它干净。但是向GreaseMonkey添加一个用户脚本可以从他们的文件夹中提取所有文件。

extraction

而且,我的git项目不仅包含userscript文件夹,还有其他一些东西。因此,将gm_script的目录声明为git的源代码可能不是一个好主意,将许多文件放在gm_scripts中,而它们与用户脚本无关,这不是一个好方法。并且不得不被迫在我的Firefox配置文件深处丢失的文件夹中工作。

我想知道是否有一种技术可以高效,轻松地在包含GreaseMonkey和git的项目上工作。

1 个答案:

答案 0 :(得分:4)

  

您可以链接必要的文件!

     

Windows(Elevated Command Prompt): mklink <<gmfile>> <<gitfile>>

     

Unix / Linux: ln -s <<gitfile>> <<gmfile>

感谢来自 Greasespot 讨论组的Enkidu的回复!

使用Windows和.bat文件,此代码用于将您的git文件夹中的所有文件链接到Greasemonkey文件(如果路径中有空格或者您的两个文件中有空格,则可能会出错)同名)。

echo off

set git_dir=C:\path\to\your\git\folder
set gm_dir=C:\path\to\your\greasemonkey\userscript\folder\

for /R %git_dir% %%G IN (*) do (
    echo Y | del %gm_dir%%%~nxG
    mklink %gm_dir%%%~nxG  %%G
)