一个自动使用--reference来节省时间和空间的git克隆包装器。

git-autoshare的Python项目详细描述


License: GPL-3https://badge.fury.io/py/git-autoshare.svghttps://travis-ci.org/acsone/git-autoshare.svg?branch=masterhttps://codecov.io/gh/acsone/git-autoshare/branch/master/graph/badge.svg

自动使用–reference的git克隆包装器 以节省磁盘空间和下载时间。

Installation

要以一种奇特的方式安装git autoshare,我们建议使用pipx

安装pipx后,只需运行:

$ pipx install git-autoshare

要随时升级git autoshare,请执行以下操作:

$ pipx upgrade git-autoshare

如果希望git autoshare-clone被透明地调用,而不是git clone, 创建以下bash脚本,将其命名为git,并将其放在/usr/bin/git之前的PATH

#!/bin/bash
if["$1"=="clone"]thenshift
    /usr/bin/git autoshare-clone "$@"else
    /usr/bin/git "$@"fi

Usage

Configuration file

要配置它,请在用户配置中创建名为git-autoshare/repos.yml的文件 目录(在Linux上通常是~/.config)。此文件必须具有以下结构:

host:
    repo:
        orgs:
            - organization
            - ...
        private: (True|False)
    ...:
...:

它列出了所有受共享影响的git主机、存储库和组织 Git对象的。下面是一个示例:

github.com:
    odoo:
        orgs:
            - odoo
            - OCA
    enterprise:
        orgs:
            - odoo
            - acsone
        private: True
    mis-builder:
        # shortcut to provides organizations
        - OCA
        - acsone

注意使用private选项,用于使用ssh协议强制获取。

还可以使用*作为存储库名称的通配符,以便 自动共享应用于某些组织的所有回购:

github.com:
    "*":
        orgs:
            - odoo
            - OCA
            - acsone
        private: True

注意

在此配置中,git-autoshare-prefetch不带参数 不会获取任何通配符回购。这在未来可能会得到改善 重新提取缓存中已存在的回购。

git autoshare-clone command

如果像上面的例子一样配置,那么当git克隆odoo或mis builder存储库时 从其中一个github组织,git autoshare-clone将自动插入 --referencegit clone命令中的选项。例如:

$ git autoshare-clone https://github.com/odoo/odoo

将转换为:

$ /usr/bin/git clone --reference ~/.cache/git-autoshare/github.com/odoo https://github.com/odoo/odoo

git autoshare-submodule-add command

git autoshare-clone命令相同,可以使用 参考资料。例如:

$ git autoshare-submodule-add https://github.com/odoo/odoo ./odoo

将转换为:

$ /usr/bin/git submodule add --reference ~/.cache/git-autoshare/github.com/odoo https://github.com/odoo/odoo ./odoo

git autoshare-prefetch command

autoshare-prefetch命令主要用于在cron作业中运行:

$ git autoshare-prefetch --quiet

将通过获取repos.yml中提到的所有存储库来更新缓存目录。

它还可以预取一个存储库,例如:

$ git autoshare-prefetch https://github.com/odoo/odoo.git

Environment variables

缓存目录名为git-autoshare,其中appdirs。 (通常是~/.cache/git autoshare/)。 可以使用GIT_AUTOSHARE_CACHE_DIR环境变量配置此位置。

默认配置文件名为repos.yml,其中appdirs。 (通常是~/.config/git autoshare/)。 可以使用GIT_AUTOSHARE_CONFIG_DIR环境变量配置此位置。

默认情况下,git-autoshare调用git作为/usr/bin/git。这可以用^{tt23}配置$ 环境变量。

Credits

作者:

贡献者

维修人员:

ACSONE SA/NV

该项目由Acsone SA/NV维护。

Changes

1.0.0b4 (2019-07-14)

  • 支持ssh://url,删除对giturlparse的依赖性

1.0.0b3 (2019-07-13)

  • 在克隆之前始终预取缓存,以确保缓存已更新 定期

1.0.0b2 (2019-03-17)

  • add子模块add命令
  • 使用安全加载来分析配置
  • 在配置中允许使用通配符
  • 内部重构

1.0.0b1 (2018-01-07)

  • 支持私有存储库
  • 在预取中更好地处理远程
  • 使用–prun进行预取

1.0.0a2 (2017-10-10)

  • 第一个打包版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java什么会导致程序在它似乎拥有的监视器上被阻止?   java Android studio设置视图的背景色   java我可以保存一个文本文件而不给用户修改它的能力吗?   pdfbox PDFBOX2。0:java堆堆栈错误   java是维护和操作AllowList的有效方法   JAVAsql。SQLException:找不到适合jdbc的驱动程序:mysql://localhost:3306/asd性爱   如何使用java。lang.NullPointerException:void 安卓。支持v7。应用程序。ActionBar。setElevation(float)“”在空对象引用上'   java调试空指针异常   java正则表达式,以按令牌的特定匹配项拆分,同时忽略其他匹配项   java为JPanel设置边框上的笔划   并发@Schedule方法的java行为   如何在Java中使用泛型与语言运算符和泛型类扩展数   java Rhino Javascript如何为异常堆栈跟踪标记字符串源   运行可执行jar时发生java错误,无法找到或加载主类