- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我目前正在将 CVS 存储库转换为多个 git 存储库。
cvs2git 进程很好,但是我在运行 filter-branch 命令时遇到了问题。我使用简单的脚本测试命令,因为主存储库大小为 4Go,提交次数超过 14k。
在此过程中,我想用 git repo 历史记录中的内容替换一些文件。
这是我用来测试我的 filter-branch --tree-filter 命令的脚本:
#!/bin/bash
BASEDIR=/tmp/migration_git
if test ! -d $BASEDIR; then
mkdir $BASEDIR
fi
script_tree_filter='\
archives=`find . -name "archive.tgz"`; \
CURDIR=`pwd`; \
for archive in $archives; do \
cd `dirname $archive`; \
tar xzf archive.tgz ; \
rm -f archive.tgz ; \
cd $CURDIR;\
done'
cd $BASEDIR
if test -d repo.server.git; then
rm -rf repo.server.git;
fi
mkdir repo.server.git && cd repo.server.git && git init
touch a toto && tar czf archive.tgz a && rm a && git add . && git commit -am "1st commit" && git tag commit1
touch b a && rm archive.tgz && tar czf archive.tgz a b && rm a b && git commit -am "2nd commit" && git tag commit2
touch a b c && rm archive.tgz && tar czf archive.tgz a b c && rm a b c && git commit -am "3rd commit" && git tag commit3
# git rm archive.tgz && mkdir rep1 rep2
mkdir rep1 rep2
cd rep1 && touch a b c d && tar czf archive.tgz a b c d && rm a b c d && cd ..
cd rep2 && touch a b c d && tar czf archive.tgz a b c d && rm a b c d && cd ..
git add . && git commit -am "4th commit" && git tag commit4
cd $BASEDIR
if test -d repo.client.git; then
rm -rf repo.client.git;
fi
git clone repo.server.git repo.client.git
cd $BASEDIR/repo.client.git
git filter-branch -f -d /tmp/test_git --tag-name-filter cat --prune-empty --tree-filter "$script_tree_filter" -- --all
git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d
git reflog expire --expire=now --all
git gc --prune=now
我有两个问题:
最后,脚本在处理过程中显示错误:
error: Untracked working tree file 'a' would be overwritten by merge.
如果客户端克隆是使用 --mirror 完成的:
git clone --mirror repo.server.git repo.client.git
错误不会出现。我不明白为什么。
当我 cd 到 repo.client.git 时,存储库有本地修改:存档存在,我想保留的文件已被 git 删除。我也不明白。编辑:文件 a、b、c、d 是否为空都不会改变结果。
最佳答案
根据 DomQ 的评论,我升级了我的 Git 版本(1.8.0 => 1.8.3),问题不再出现。
关于git - 通过 untaring archives 重写 Git 历史,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17704482/
有没有办法从 archive.org 上传或触发自己网站的快照到 WayBackMachine?我已经检查了常见问题解答和 archive.org API,但找不到任何使用脚本触发此问题的方法。 最佳
在我当前的项目中,我正在集成 RestKit 库(我不知道它是否重要),当我使用编译器提示的“存档”时尝试交付应用程序进行测试 "RestKit/RestKit.h" is not found 在构
在我的项目开始时,有两个 terraform 模块:base 和 reusable_module。 base/main.tf # Provide abstraction to define a lam
我试图弄清楚如何以正确的方式构建我的 Cocoa 应用程序的发布版本。 到目前为止,我已经使用了 为归档而构建 选项,并从 Xcode 的 DerivedData 文件夹深处获取应用程序包。 今天我试
我有一个 Swift 语言的 iOS 项目,我必须在终端上使用命令创建存档和 .ipa。 我正在使用 Github 操作在试飞中上传 iOS 版本。 我正在遵循此链接中提到的所有说明: https:/
我正在使用 GCC 从两个 *.a(静态库)创建一个共享对象库。我引用了这些文章: How to force gcc to link an unused static library How to i
我的应用程序突然停止创建 iOS App Archive,而是开始创建 Xcode Generic Archive。 这是在为我的应用程序的新版本进行更改后发生的,我添加了逻辑、UI 更改和一些新框架
我有一个包含大约 800 个 .tgz 文件的目录,每个文件包含大约 10 个文件。实际上,我想将每个存档转换为同名目录。是否有一个简单的一行命令来执行此操作,还是我应该编写一个脚本? 最佳答案 自
在 gcc 中使用 -Wl--whole-archive ... -Wl--no-whole-archive 标志时,您如何验证库内部的所有内容都正确链接?另外,您如何验证该库是否可以调用由 LD_L
我有一个用 Swift 编写的小型命令行应用程序,现在我想将其归档。然而,像我之前的许多其他人一样,我遇到了如何将 Archive Type 从 Generic Xcode Archive 更改为 M
我不确定是否应该对 .emacs.d 下的以下文件进行版本控制: [lucas@lucas-ThinkPad-W520]/home/lucas/.emacs.d$ file elpa/archives
我正在处理 Postgres DVD tutorial并且在导入示例数据库时遇到问题。 运行 pg_restore -U postgres -d dvdrental ~[filepath]/dvd-d
注意: Boost 的存档方案基于对称的输入和输出存档类。一直写这两者很乏味,所以我将使用 ?archive 来表示 oarchive 和 iarchive。 总结: 将自定义存档的基类从 binar
是否可以使用 Node.js 流构建一个 zip 存档,并在创建时通过对 HTTP GET 请求的响应将该 zip 存档提供给客户端/用户?我正在寻找一种最好避免将整个 zip 缓冲到服务器内存中的解
我正在尝试使用 XCODE 4.3.1 发布一个临时 ipa。归档我的 iOS 应用程序时,我可以在管理器中看到归档类型是“Mac App Archive”,虽然我知道它应该是“iOS App Arc
我正在参加 Udacity 的类(class),该类(class)要求我在我的系统上设置虚拟机。我已经下载并安装了 Virtual Box 和 Vagrant。当我尝试运行命令 vagrant up
我试图找到一个很好的例子来说明如何使用这些二进制宽字符版本的 boost 序列化内容。我拼凑了一些代码来尝试让它工作,但不幸的是,我在尝试编译它时遇到了链接器错误的轰炸。 这是我的代码,以防我做任何明
目标与问题 我在 IntelliJ 中创建了一个 Java 程序。我按照说明将其构建为 .jar 文件 here 。当我尝试运行它时,它给出以下输出: Parameters: archive-name
我已包含在 hector-core-1.1-2 文件夹中找到的所有 jar。还有其他我没有包含的 jar 吗?我尝试过的事情。1)清除netbeans缓存2)下载org.apache.xbean.fi
我正在尝试打开包含创建数据库和 INSERT 语句的 PostgreSQL 的 SQL 脚本(.sql 文件),但是当我尝试使用 PgAdmin 4 恢复数据库时,它给我错误提示“pg_restore
我是一名优秀的程序员,十分优秀!