Subversion离线解决方案(SoS)

sos-vcs的Python项目详细描述


#SOS 1.5.3版

[![特拉维斯徽章](https://travis-ci.org/arnebachman/sos.svg?branch=master)(https://travis ci.org/arnebachman/sos)
[![构建状态](https://ci.appveyor.com/api/projects/status/fe915rtx02buqe4r?svg=true)(https://ci.appveyor.com/project/arnebachman/sos)
[![代码覆盖徽章](https://coveralls.io/repos/github/arnebachman/sos/badge.svg?branch=master)"(https://coveralls.io/github/arnebachman/sos?分支=主)
[![PYPI徽章](https://img.shields.io/PYPI/v/sos vcs.svg)(https://badge.fury.io/py/sos vcs)
[![Gitter聊天](https://img.shields.io/badge/chat on%20gitter-5ab999.svg?logo=gitter white)](https://gitter.im/sos vcs/lobby)

-license:[mpl-2.0](https://www.mozilla.org/en-us/mpl/2.0/)
-阅读[官方网站](https://sos vcs.net)上的文档,与作者和其他人[在gitter上](https://gitter.im/sos vcs/lobby)聊天,文件问题和请求[在github上](https://github.com/arnebachman/sos/issues),分叉代码库[在github上](https://github.com/arnebachman/sos)
-[给开发人员买杯咖啡](https://paypal.me/arnebachman/)以示感谢!

然而,如果没有一个活跃的社区的支持,或者没有为我在日常工作和家人的帮助之外投入到SOS中的努力获得某种资金,我就无法继续保持这样的速度。如果有足够的时间来处理错误报告、功能请求和贡献,我们将欢迎它们。请以任何适合您的方式支持SOS,使其成为我们的主要个人生产力工具!

-**SVN**:[apache subversion](http://subversion.apache.org)
-**VCS**:*版本控制系统*

-**filename**:整个SoS和本文档中使用的文件名的固定术语
-**file pattern**:文件名或[glob](https://en.wikipedia.org/wiki/glob\%28编程%29),允许放置特殊字符,如`*?[!]`在文件名中标记省略号
-**文件树**:用户文件系统上某个时间点的目录结构。它与*签出*或*工作副本*并不完全相同,但在很大程度上可比性
-**修订**:一组存档(或版本化、差异化)的文件修改,也称为变更集或修补程序



img src="https://github.com/arnebachman/sos/raw/master/logo-small.png"alt="sos logo"style="float:left;vertical align:text top;margin right:1em;"/gt;如果您(**love**,或只是**必须**)使用SVN VCS,但是**需要**(或者**缺乏**)脱机提交和分支文件的灵活性(没有永久的网络连接)类似于*git*的能力,sos是您的直接和超级简单的命令行scm解决方案:

sos允许执行脱机操作*a)*替换"svn"和其他vcs命令,*b)*作为不支持脱机分支和提交或太复杂的vcs的脱机扩展,*c)*作为独立的vcs。
您不仅可以在svn签出内部运行"sos offline",还可以在任何(或多个)中运行"sos offline",甚至是嵌套的)文件系统文件夹,甚至在VCS存储库签出/克隆之外。

[sos](https://arnebachmann.github.io/sos/)因此增加了[svn](http://subversion.apache.org)的脱机操作,满足了与[svk]相同的需求(https://www.perl.com/pub/2004/03/svk.html/),[rcs](http://www.gnu.org/software/rcs/),[cvs](https://savannah.nongu.org/projects/cvs),[git](https://git scm.com),[gitleSS](http://gitless.com)、[单调](http://www.monotone.ca)、[darcs](http://darcs.net)、[集市](http://bazaar.canonical.com/en/)、[水银](https://www.mercurial-scm.org)和[化石](http://www.fossil-scm.org)。

"sos"命令将兼作任何流行VCS的命令行界面,并执行任何"svn"、"git"等命令。例如,"sos commit-m"消息"而不是"svn commit-m"消息"或"git commit-m"消息"。
执行"sos offline"后,所有命令都由sos工具解释,直到通过"sos online"离开脱机模式(除了"sos config",请参阅下面的详细信息)。



所有文件都会自动进行版本控制和跟踪。缺点:会对任何文件(二进制或非二进制)进行任何小修改
-**跟踪模式**:在"commit"、"update"和"branch"期间(就像在svn、gitless和fossil中一样),只会尊重与特定文件模式匹配的文件,要求用户专门为每个分支添加或删除文件。缺点:需要为每个脱机存储库声明要跟踪的文件
-**picky mode**:每个操作都需要显式声明用于版本控制的文件模式(就像git那样)。缺点:每次提交都需要暂存文件


通过*文件模式*而不是纯文件名或路径跟踪文件(以类似于SVN忽略文件的方式)
-命令行替换传统的VCS,这些VCS透明地将命令传递给它们
-简单明了的通用VCS操作语义(`branch`,`提交,集成更改)

不要试图在共享位置使用SoS,对存储库的并发访问可能会损坏您的数据,因为当前没有锁定(可能会增加,但目前也不是目标)
-到目前为止,用户基数很小,因此,除了在travis ci和appveyor上运行的自动单元测试之外,没有关于兼容性和操作能力的可靠报告

由于库问题,Python2不再受支持,尽管SoS的编程语言*椰子*通常能够转换为有效的Python2源代码。使用"pip install sos vcs[backport]`尝试在python 3.3或更早版本上运行sos
-sos与上述传统vcs兼容:svn、git、gitless、bazaar,Mercurial和Fossil
-文件名编码和控制台编码:完全往返支持(在Windows上)仅从Python3.6.4开始,尚未对SoS进行测试或确认



218](https://github.com/arnebachman/sos/issues/127)实现更好的帮助系统
-[功能212](https://github.com/arnebachman/sos/issues/212)限制"SoS日志"中显示的修订数。可通过选项标志"-all"和配置设置"loglines"进行控制
-[功能213](https://github.com/arnebachman/sos/issues/213)现在显示占用的存储空间
-[功能209](https://github.com/arnebachman/sos/issues/209)提交文件时添加了警告其时间戳比以前的版本或以前的提交早
-[功能210](https://github.com/arnebachmann/sos/issues/210)逻辑编码错误,阻止了完全转储和差异转储之间的区别
-[增强201,208](https://github.com/arnebachmann/sos/issues/201)添加了项目徽标
-[增强144](https://github.com/arnebachmann/sos/issues/144)使使用"-verbose"的详细输出和使用"-debug"和"-log"的调试输出之间的语义区别
-[Enhancement 211](https://github.com/arnebachman/sos/issues/211)添加一个奇特的ascii艺术标题
-[Enhancement 214](https://github.com/arnebachman/sos/issues/214)更多文档
-[增强216](https://github.com/arnebachman/sos/issues/216)更改"sos日志"中的显示,以显示修改的文本文件数,而不是添加的文本文件数
-[错误217](https://github.com/arnebachman/sos/issues/217)在"sos状态"中显示的路径错误
-[错误219](https://github.com/arnebachman/sos/issues/219)修订计算错误导致在快速分支分支之间切换不正确
-[qa 198](https://github.com/arnebachman/sos/issues/198)最终使测试在appveyor上运行。原因是Linux上没有显示文件系统同步问题
-目前下载量:0
-**版本1.5**,于2018-03-03发布:
-[bug 78](https://github.com/arnebachman/sos/issues/78)长期存在的bug,在diff视图中计算错误的行号
-[bug 196](https://github.com/arnebachman/sos/issues/196)无处不在的"仅"和"不起作用的"选项除外
-[bug 197](https://github.com/arnebachman/sos/issues/197)修复"commit"和"log"中显示的文件数的错误
-[错误206,207](https://github.com/arnebachmann/sos/issues/206)合并不要求用户输入一行替换,也错误地使用了我的/他们的
-[增强195](https://github.com/arnebachman/sos/issues/195)将不同行号中的位数最小化到所需的数量
-[增强199](https://github.com/arnebachman/sos/issues/199)添加了Unicode符号(通过`使用unicodefont`)
-[增强202](https://github.com/arnebachman/sos/issues/202)现在使用"wcwidth"库确定Unicode字符串的可见宽度(未测试)
-[功能102](https://github.com/arnebachman/sos/issues/102)选项来列出跟踪模式,并递归地列出(跟踪)文件
-[功能157200204](https://github.com/arnebachman/sos/issues/157)对增量转储的实验支持
-迄今为止的下载:3150
-**版本1.4**,2018年2月17日发布:
-[bug 167](https://github.com/arnebachman/sos/issues/167)意外爬网文件树和"sos status"上的所有修订版
-[bug 190](https://github.com/arnebachman/sos/issues/190)未在"sos online"中计算的更改
-[enhancement75%(https://github.com/arnebachman/sos/issues/75)在"sos commit"和其他操作期间的更好进度指标
-[增强133](https://github.com/arnebachman/sos/issues/133)现在显示了在"sos offline"和"sos commit"之后的整个存储库压缩优势
-[增强171](https://github.com/arnebachman/sos/issues/171)在"sos diff"中显示目标行尾类型
-[增强179,180](https://github.com/arnebachman/sos/issues/180)SOS现在从元数据文件创建备份并自动转储文件
-[增强186](https://github.com/arnebachman/sos/issues/186)选项忽略"sos diff"中的前导和尾随空白(对"sos update"不有用,不过)
-[增强187](https://github.com/arnebachman/sos/issues/187)默认情况下,"sos diff"中的文本在(右侧)终端边框的末尾剪切,使用选项开关"--wrap"保留旧的行为(环绕文本)
-[增强191](https://github.com/arnebachman/sos/issues/191)允许使"sos stat"的行为us`command configurable via`useChangeScommand=yes`显示文件树状态(新的默认值,反映了SVN和Git的行为),或显示存储库和分支状态(而不是对文件树状态进行'sos changes',特别是对来自化石的人而言)
-【Enhancement 192】(https://github.com/arnebachman/sos/issues/192)通过依赖椰子树中的最新增强功能(例如"键入"导入),加上删除过时的代码,减少了代码行数
-【feature 181】(https://github.com/arnebachman/sos/issues/181)引入了**非常快速分支**。使用"sos branch[<;name>;[<;message>;]]--last--fast"进行即时分支,只使用对父分支的引用,而不复制每个文件。这一特性朝着git的方向迈进了一步,并将复杂性引入到代码库中,但被视为不妨碍开发人员的必要条件。将修订复制到从属分支的负担延迟到父分支被销毁时,假设销毁分支是比分支更不常用的操作
-[feature 182](https://github.com/arnebachmann/sos/issues/182)引入了元数据格式的自动升级,从而使以前和将来版本的手动迁移步骤过时
-[feature183)(https://github.com/arnebachman/sos/issues/183)SOS现在可以识别并显示存储库中的重命名和文件移动。基本的添加/删除文件行为保持不变,但用户看到"sos changes"和"sos commit"的"moved"通知
-下载:3100
-**版本1.3**,于2018-02-10发布:
-[增强152,162](https://github.com/arnebachmann/sos/issues/152)pep528/529兼容性:现在在windows上使用任何控制台编码和文件系统编码(至少使用python 3.6+)
-[增强163](https://github.com/arnebachmann/sos/issues/163)重写变更集处理以避免重新添加以前版本中删除的文件时出现的问题
-[增强164](https://github.com/arnebachman/sos/issues/164)对"sos config"的改进很小
-[增强165](https://github.com/arnebachman/sos/issues/164)对"sos config add"的改进很小
-[增强168](https://github.com/arnebachman/sos/issues/168)如果更改与实时修改相同,则不会停止切换
-[功能64](https://github.com/arnebachman/sos/issues/64)添加了跟踪模式的黑名单(例如,除了单个文件或缩小globs的范围)。对于旧存储库的手动迁移:在".sos/.meta"中的每个分支信息末尾添加一个",[]",例如将

`[0,1518275599353,"trunk",true,[]`


`[0,1518275599353,"trunk",true,[],[]``(注意附加的尾随`,[]`)
-下载:2550
-**版本1.2**,于2018-02-04发布:
-[错误135,145](https://github.com/arnebachman/sos/issues/135)修复了一个显示忽略文件已删除的错误
-[bug 147](https://github.com/arnebachman/sos/issues/147)修复了"sos ls"问题
-[enhancement 113](https://github.com/arnebachman/sos/issues/113)可用性改进
-[增强122](https://github.com/arnebachman/sos/issues/122)合并逻辑和代码的完全重做
-[增强124](https://github.com/arnebachman/sos/issues/124)使用enum
-[增强137](https://github.com/arnebachman/sos/issues/137)更好的使用帮助页
-[增强142,143](https://github.com/arnebachman/sos/issues/142)扩展了"sos config"并添加了本地配置
-[增强153](https://github.com/arnebachman/sos/issues/153)删除了python 2的剩余部分,将python的最低版本提高到3.4(但3.3也可以工作)
-[增强159](https://github.com/arnebachman/sos/issues/159)内部元数据更新。用于手动MIG来自旧存储库的定量:在最后一个`]``结束之前将`,{}`添加到`.sos/.meta`中,在初始`[{`
-[feature 134,161]之后添加`version="pre-1.2",`added dump option
-downloads:1760
-**version 1.1**,发布于2017年12月30日:
-[bug 90](https://github.com/arnebachman/sos/issues/90)删除的目录未被提取
-[bug 93](https://github.com/arnebachman/sos/issues/93)picky mode列出添加的任何文件
-[enhancement63)(https://github.com/arnebachman/sos/issues/63)在"log"和"status"中以及"ls"(在[101](https://github.com/arnebachman/sos/issues/101)中显示更多更改详细信息
-[增强86](https://github.com/arnebachman/sos/issues/86)将分支删除的命令重命名为"destroy"
-[功能8](https://github.com/arnebachman/sos/issues/8)添加了重命名跟踪模式和相应地移动文件的功能
-[功能61](https://github.com/arnebachman/sos/issues/61)添加了仅考虑或排除相关操作的特定文件模式的选项使用"--only"和"--except"。注意:这些文件模式必须已经被跟踪,目前,请参阅[99](https://github.com/arnebachman/sos/issues/99)和[100](https://github.com/arnebachman/sos/issues/100)
-[功能80](https://github.com/arnebachman/sos/issues/80)添加了使用标记的功能
-[qa 79](https://github.com/arnebachman/sos/issues/79)添加了appveyor自动测试
-[qa 94](https://github.com/arnebachman/sos/issues/94)更多测试覆盖率
-许多小修改和改进
-下载:5200
-**1.0版**,于2017年12月14日发布:
-第一次发布,具有基本功能
-许多测试用例,良好的测试覆盖率
-系统集成和打包
-库集成和测试
-VCS集成
-下载:4600



我偶然发现了一篇有趣的[格雷戈里·索克的文章](https://gregory szorc.com/blog/2017/12/11/high-level-problems-with-git-and-how-to-fix-them/)讨论了流行VCS设计中的中心弱点,重点是Git。我直觉上也感觉到他的许多论点是正确的,也是开发SoS的原因:主要是减少了开发人员的典型工作流和VCS之间的障碍,VCS通常被用作"类型和增量保存"的结构化工具,虽然git的高级功能很难记住,也很难正确完成。

-虽然git基本上是一个大的键值存储,上面有一个瘦访问接口,但是sos保持了一个非常清晰的(文件夹)分支、修订和文件结构
-与svn相比,sos的文件存储是更简单,不需要集成的数据库,而且只需很少的努力就可以手动恢复,

这里比较了sos和传统vcs的命令:
-`branch`从当前文件树创建一个分支,但也会立即切换到它。不需要命名分支,消除所有障碍
-sos允许通过"sos branch[<;name>;]--last"从最新提交的修订进行分支;这在跟踪和挑剔模式下自动应用。因此,自上次提交之后执行的任何更改都将自动视为分支上下一次提交的更改,除非添加了"--stay"以及不切换到新分支
-`commit'从当前文件树创建编号的修订,类似于svn的做法,但是修订号仅对每个分支唯一,因为它们不存储在全局命名空间中。提交消息是严格的*可选*故意的(因为"sos commit"主要用作ctrl+s替换)
-第一次修订(创建了d在执行"sos offline"或"sos branch"时,总是有数字"0"
-每个"sos commit"都将修订号增加一个;修订被此数字索引引用,如果给定,则修订的可选提交消息,或者标记
-标记提交意味着提交消息用作标记名,并保证是唯一的。可以使用按其标记名引用修订而不是数字修订索引,但这不仅适用于已标记的修订,还可以使用带有匹配提交消息的第一个匹配修订
-您可以使用负修订索引,就像python一样。`-1`表示最新修订,`-2`到第二个最新的
-您可以通过`/<;revision>;`指定当前分支的修订,而通过`<;branch>;/`(注意斜杠的位置)
-`delete`指定另一个分支的最新修订,将销毁并删除分支。这是一个命令,而不是"git branch-d<;name>;"中的选项标记,如果存储库是在跟踪或挑剔模式下创建的,则为了可用性而添加和删除跟踪模式。模式从不递归应用,但始终应用于特定的文件树路径。但是,它们的文件名部分可能包含globs,这使得它不同于现有的任何其他vc
-`move`重命名文件跟踪模式和所有匹配的文件;仅在跟踪或挑剔模式下有用。它支持文本子字符串的重新排序,但不支持全局标记(`*`,`?`以及相邻的球状标记。使用"--soft"可避免在文件树中实际重命名文件。警告:对于连续的、有潜在危险的操作,'--force'选项标志将被考虑
-`switch'的作用类似于git中另一个分支(或当前分支)的修订版的"checkout",或svn中最新或特定修订版的"update"。请注意,切换到另一个版本不会修复或记住该版本。文件树将始终与分支的最新提交进行更改检测进行比较
-`update`的工作方式有点类似于`pull`并在git中合并或在svn中的`update`并将指定的其他(或"remote"分支和/或修订的更改重放到文件树中。有很多选项可以配置实际集成的更改,以及交互式集成。此命令不会像"switch"那样切换当前分支。注意,这根本不是真正的3路*merge*或*merge*方法,只是一种更灵活的方法,可以从*diff*

中插入和删除文本输出当要合并不同的内容时,总是有可能发生冲突;并不是所有的更改都可以自信地自动合并。sos采用一种简单实用的方法,主要遵循一种简单的diff算法来检测和突出显示变化。注意插入和删除,部分检测并标记修改。SOS可以处理不同的更改层:
-文件树中的文件添加或删除,例如从另一个分支更新和/或修订或切换到它们时,可以由"-add"、"`--rm"和"-ask"控制,这仅适用于冲突。默认情况是在文件中同时回放
-行插入或删除操作,例如在更新期间合并文件修改时,通过`--add lines`、`--rm lines`、`--ask lines`。默认值是replay both
-在合并的单个文本行上插入或删除字符,例如,当检测到不冲突的行内差异时,通过`-add chars`、`-rm chars`、`-ask chars`。默认情况下,在"--track"或"--picky"模式下,从另一个分支重新播放
-更新状态将始终合并(建立)所有跟踪的文件模式。要恢复此状态,请使用"switch--meta"命令将另一个分支和/或修订版的跟踪模式拉回到当前活动的分支(可能需要先切换到另一个siDE)。目前没有检查,如果拉入的跟踪模式是已经存在的once的超集或子集
-但是,可能有文本行块看起来被插入/删除,但实际上可能只是在文件中移动。待办事项:SOS试图检测清楚的移动块情况,并默默地接受它们,无论发生什么。TODO:实现并引入选项标志以避免此行为

这些模式总是指一个特定的(相对的)文件路径,并且可能包含全局字符"?*!]`仅在路径的文件名部分。



或仅本地到一个存储库(使用"--local"选项标志)。
当前没有"--system"作用域([类似于git支持](https://dzone.com/articles/oh-git-configurations-lets-simplify?版本=371199),因为SoS主要是作为单一用户工具设计的,我们不想光顾用户。
在离线存储库创建过程中,可以根据每个存储库定义其中的一些选项(例如"SoS离线——跟踪——严格——压缩")。其他的只能以持久的方式设置(例如"sos config set texttype"*.xsd"`),或者在存储库创建之后(例如"sos config set texttype"*.xsd;*.xml"--local`)。


或初始列表(以分号分隔)
-`sos config unset`将删除布尔标志、字符串或整个列表
-`sos config add`将一个或多个(以分号分隔)字符串条目添加到列表中,并在必要时创建该列表
-`sos config rm`将从列表中删除字符串条目。必须与要删除的条目完全相同。要删除列表,请使用"sos unset<;key>;"`
-`sos config show`列出所有定义的配置设置,包括存储位置/类型(全局、本地、默认)
-`sos config show<;参数>;`仅显示一个配置项
-`sos config show flags texts lists`显示每种类型支持的设置

用户配置和默认值
sos使用[`configr`](https://github.com/arnebachman/configr)库来管理每用户全局默认值,例如,对于"offline"命令采用的"-strict"和"-track"标志,以及常用的文件和文件夹排除模式。
通过"sos config set"<;key>;<;value>;`命令,可以使用"1"、"no"、"on"、"false"等值设置这些标志,`启用"或""禁用"。


默认值:false
-`track`:在跟踪模式(svn样式)下始终脱机的标志。默认值:false
-`picky`:在picky模式(git样式)下始终脱机的标志。默认值:false
-`compress`:压缩版本化工件的标志。默认值:false
-`useChangeScommand`:flag用于将"sos status"设置为"sos status--repo",并使用"sos changes"而不是"sos status"更紧密地复制化石的行为
-`useConnedFont`:flag用于使用更奇特的符号,授予控制台字体支持它们:脱机时创建的初始分支的名称。默认值:当前工作目录中每种类型的VCS都是动态的(例如,git为"master",svn为"trunk",fossil为"no name")
-`text type`:应识别为文本文件的文件模式列表,可通过文本差异进行合并,除了python的"mimetypes"库将检测为"text/…"mime之外。示例:`*.bak`可能是系统上的文本文件,因此将其添加到'texttype`configuration,全局(默认)或本地(使用"--local")。*默认值*:空列表
-`bintype`:应识别为不能以文本方式合并的二进制文件的文件模式列表,覆盖"texttype"中的潜在匹配项。默认值:空列表
-`忽略':存储库操作期间要忽略的文件名模式(不带文件夹路径)列表。来自相应白名单的任何匹配都将否定"忽略"的任何命中。默认值:请参见源代码,例如`["*.bak"、"*.py[cdo]]"`
-`ignoreswhitelist`:要考虑的文件名模式列表,即使与"忽略"列表中的条目匹配。默认值:空列表
-`ignoredirs`:as`ignoreswhitelist`,但是对于文件夹名
-`ignoredirswhitelist`:as`ignoreswhitelist`,但是对于文件夹名



每个分支都是独立的,与其他分支或其某些修订版没有任何关系,但附带说明的是,它的初始文件内容
-文件跟踪模式是按每个分支存储的,但**不是**版本的提交(!)。这意味着"要跟踪的内容"元数据不是变更集的一部分。这是一种简化,其主要思想是修订形成安全点的线性顺序,用户很少返回到较旧的修订
-`sos update`将**不警告**如果存在本地更改!这是对大多数其他命令所采用的故障保护方法的一个值得注意的例外


然后使用另一个修订版作为参数执行diff
-在diff期间忽略空白:添加选项"-iw"或"--忽略空白"


或者简单地将`.sos'文件夹移动到一个(空的)目标文件夹中,然后运行`sos switch trunk--force`(或者使用您想要重新创建的任何分支名称)。对于压缩的脱机存储库,您可以简单地"tar"所有文件,否则您可能需要创建用于传输".sos"文件夹的压缩存档
-要在脱机时节省空间,请使用"sos offline--compress"选项:它可能会增加提交时间一个更大的因素(例如10倍)。但也会减少文件版本所需的存储量。要为所有脱机存储库启用此选项,请使用"sos config set compress on"
-在命令行上指定包含全局标记的文件模式时,请确保正确引用它们。在linux(bash,sh,zsh)上,也推荐在windows上使用引号(`"`),否则shell将用任何匹配文件名的列表替换文件模式,而不是直接将模式转发给sos
-许多命令可以缩短为三个,两个甚至一个首字母,例如'sos st'将运行'sos status',就像svn一样(但遗憾的是不是git)。使用SoS作为其他VCS的代理需要指定这些VCS所需的表单,例如"SoS ST"适用于SVN,但不适用于Git("SoS Status",可以工作)
-在某些情况下,最好在文件树中比基本工作文件夹高的位置脱机一个文件夹,以处理可能的删除、移动或重命名
-脏标志仅在跟踪和选取模式下相关(?)todo investigate-这是真的吗,如果是,为什么
-分支更多的二进制文件可能会很昂贵,因为所有文件都是在"sos offline"期间复制和/或压缩的。解决方法是只在与特定任务相关的文件夹中"sos offline"



\development and contribution\br/>有关详细信息,请参见[contribution.md](https://github.com/arnebachman/sos/blob/master/contribution.md)。

开发:
-[第158期](https://github.com/arnebachman/sos/issues/158)远程元数据文件夹would允许将存储库与签出区分开,并且-结合像"紧固件"这样的锁定库,甚至可以用作多用户存储库。估计开发时间为3+3小时。



如果需要开发权限,请使用"sudo-e python…"。
-运行"git add"、"git commit"和"git push",并让travis ci和appveyor在不同的目标平台上运行测试。如果没有问题,请继续:
-不要忘记标记发行版
-运行"python3 setup.py sdist"
-运行"twine upload dist/*.tar.gz"将先前创建的发行存档上载到pypi。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在Hibernate中使用条件连接两个表?   Stripes框架中的java对话范围   我的内存够吗?   Jenkins Java&Selenium如何处理2个随机异常?   javascript Java websockets跨端点共享会话   java是一种测试驱动的开发方法吗?   Java客户端中的Soap连接超时,但在SOAPUI中未超时   Java LibGDX:TileMap未在顶部和右侧渲染   linux Java::process builder:bash脚本:返回的文件名正确,但fileReader引发FileNotFoundException   java Selenium单击自动随机生成的DIV/ID/LINK   比较两个忽略元素和属性顺序的XMl文件   Java无限循环/调用   java如何防止操作修改cookie?   列出未保存的Java webpanel命令   在Java中,如何解决XXXX不能作为变量求解的错误?   Java概念后期版本格式化部分