相关疑难解决方法(0)

做一个"git export"(比如"svn export")?

我一直在想是否有一个很好的"git export"解决方案,它创建了一个没有.git存储库目录的树的副本.我知道至少有三种方法:

  1. git clone然后删除.git存储库目录.
  2. git checkout-index 提到这个功能,但开头是"只需将所需的树读入索引...",我不完全确定如何做.
  3. git-export是第三方脚本,基本上git clone进入临时位置,然后rsync --exclude='.git'进入最终目的地.

这些解决方案都没有让我感到满意.最接近的一个svn export选项可能是选项1,因为这两个都要求目标目录首先为空.但是假设我可以弄清楚将树读入索引意味着什么,选项2似乎更好.

git export svn-export git-archive

2312
推荐指数
24
解决办法
62万
查看次数

如何让setuptools忽略subversion库存?

使用使用setuptools的setup.py打包Python包时:

from setuptools import setup
...
Run Code Online (Sandbox Code Playgroud)

源分发创建者:

python setup.py sdist
Run Code Online (Sandbox Code Playgroud)

像往常一样,不仅包括MANIFEST.in中指定的文件,而且它也包括Subversion在包目录下列出的所有文件控制版本.这非常烦人.它不仅难以对我的包中分发的文件进行任何形式的显式控制,而且意味着当我按照"svn export"而不是"svn checkout"构建我的包时,我的内容包可能会有很大的不同,因为没有.svn元数据setuptools会对要包含的内容做出不同的选择.

我的问题:如何关闭这种可怕的行为,以便"setuptools"以同样的方式处理我的项目,无论我使用的是Subversion,还是从未听说过的版本控制,或者是使用"svn export"创建的裸树在我的项目结束时创建,以确保它在我的工作目录之外的某个地方干净地构建?

到目前为止我管理的最好的是一个丑陋的猴子补丁:

from setuptools.command import sdist
del sdist.finders[:]
Run Code Online (Sandbox Code Playgroud)

但这是Python,而不是丛林,所以当然我想要一个更好的解决方案,根本不涉及猴子.我如何通过查看MANIFEST.py中可见的,可预测的规则来驯服setuptools,关闭它的魔力并让它表现得明智?

python packaging egg setuptools

20
推荐指数
3
解决办法
3479
查看次数

标签 统计

egg ×1

export ×1

git ×1

git-archive ×1

packaging ×1

python ×1

setuptools ×1

svn-export ×1