【问题标题】:GIT equivalent to "svnrdump dump --incremental"GIT 相当于“svnrdump dump --incremental”
【发布时间】:2016-02-10 17:35:43
【问题描述】:

在 GIT 中是否有相当于“svnrdump dump --incremental”的功能?

我正在尝试将多个 svn 和 git 存储库从远程服务器增量备份到本地服务器,但似乎没有直接的方法可以“转储”远程 GIT 存储库。

基本上,我对所有新存储库执行“git fetch --all”或“git clone --mirror”,然后执行“git捆绑创建 --all"。

还有其他/更好的解决方案吗?

【问题讨论】:

    标签: git svn bundle clone fetch


    【解决方案1】:

    一旦full bundle is created,您可以创建新的增量包。

    我在this answerscript to make incremental bundles 中提到了我所有的回购协议(除了一次完整的捆绑包)。

    echo "Create INCREMENTAL backup for '${name}' (previous was ${_dd}-${_dt}[${s}]" >> "${logf}"
    echo "${nowd} Create INCREMENTAL backup for '${name}' (previous was ${_dd}-${_dt}[${s}]" >> "${logfb}"
    git -C "${path}" bundle create "${bkp}/${name}-${nowd}-${describe}-incr.bundle" --since=${nbd}.days.ago --all
    status=$?
    

    OP 确认in the comment

    我最终在“git fetch --all”和/或“git clone --mirror”之后做了一个“git bundle create

    【讨论】:

    • 感谢您的提示,VonC!我最终在“git fetch --all”和/或“git clone --mirror”之后做了一个“git bundle create”。不确定,但在我看来是最接近我最初要求的解决方案......
    • @user3752299 好的,我已将您的结论包含在答案中以提高知名度。
    【解决方案2】:

    这个问题很有趣。 Git(仅仅因为是 DVCS)本质上总是一个“增量备份”。有人可能会说它总是“被丢弃”。如果设置了远程(即,您已经克隆了远程存储库),git fetch / git pull 将使其更新。

    如果您需要将存储库打包为单个文件,我建议您查看一个名为tar 的程序。如果你确定你想要一个完整的镜像(跟踪相同的遥控器),将一个 git repo 转储到一个文件:tar c .git > /path/to/my-repo-tarball.tar

    【讨论】:

      猜你喜欢
      • 2011-10-04
      • 2021-05-28
      • 2021-03-02
      • 2013-03-18
      • 1970-01-01
      • 2011-12-07
      • 2020-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多