2014-06-18 38 views
1

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

我想从远程服务器增量备份几个svn和git仓库到本地服务器,但似乎没有直接的方式来“转储”远程GIT仓库。

基本上我执行任何“混帐取--all”与已经存在的或“混帐克隆--mirror”为所有新的回购,其次是“混帐束创建--all”。

是否还有其他更好的解决方案?

回答

1

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

我已经在this answer中提到了一个script to make incremental bundles(除了一次wekk一个完整的包)为我所有的回购。

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 bundle create” “git fetch --all” 后,和/或 “git clone --mirror

+0

感谢您的提示,VonC!我在“git fetch --all”和/或“git clone --mirror”之后做了一个“git bundle create”。不知道,但在我看来,最接近我最初的请求的解决方案... – user3752299

+0

@ user3752299好吧,我已经包括在更多的知名度的答案你的结论。 – VonC

0

这个问题是热闹。 Git(仅仅是作为一个DVCS)本质上总是一种“增量备份”。有人可能会说这是总是“倾销”。如果设置了远程(即,您已经克隆了远程存储库),则git fetch/git pull会使其保持最新状态。

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