小编Fro*_*don的帖子

git filter-branch导致了一个断开连接的历史记录:如何摆脱旧的提交?

方案如下:

我有一个很大的CVS存储库,我想转换为14个不同的git存储库.这个cvs2git过程的一部分很好,并导致一个大的存储库repo.git.

对于14 git repo中的每一个,我克隆主repo并运行以下命令:

git filter-branch -d /tmp/rep --tag-name-filter cat --prune-empty --subdirectory-filter "sub/directory" -- --all
Run Code Online (Sandbox Code Playgroud)

但是,在此命令之前,我必须git filter-branch为某些git存储库执行另一个命令,因为我必须重写提交以将文件从目录移动到另一个目录.这--tree-filter是我使用的选项.以下是执行命令行的示例:

script_tree_filter="if test -f rep/to/my/file && test -d another/rep ; then echo Moving my file ; mv rep/to/my/file another/rep; fi"
git filter-branch -d /tmp/rep --tag-name-filter cat --prune-empty --tree-filter '$script_tree_filter' -- --all
Run Code Online (Sandbox Code Playgroud)

在过程结束时(14500提交:大约需要1小时!)我清理refs并使用git gc:

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
Run Code Online (Sandbox Code Playgroud)

最后,我获得了一个大小为1.2Go的存储库(显然仍然是太大了),通过查看提交,我可以看到很多旧的仍然存在.它们涉及在--subdirectory-filter命令之后不再存在的文件和目录. …

git tree disconnected git-filter-branch

7
推荐指数
1
解决办法
544
查看次数

pyqt字符串到普通的python字符串是给字符串添加一些文本

当我尝试打印PyQT字符串时,它不会转换为普通字符串.我该怎么做?请参阅下面的代码.

    def _execute_test(self):
        test_in = str(self.buildFlags.inFlags)
        test_out = str(self.buildFlags.exFlags)
        print(str(test_in))
        print("============")
        print(str(test_out))
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

>>> [PyQt4.QtCore.QString(u'Documents'), PyQt4.QtCore.QString(u'New folder')]
Run Code Online (Sandbox Code Playgroud)

pyqt pyqt4 python-2.7

3
推荐指数
1
解决办法
7087
查看次数

标签 统计

disconnected ×1

git ×1

git-filter-branch ×1

pyqt ×1

pyqt4 ×1

python-2.7 ×1

tree ×1