跳转到主要内容

扫描文件系统以查找未提交给版本控制系统的更改

项目描述

当我在硬盘上的版本控制项目中工作时,我经常会切换到另一个项目进行快速更改。到一天结束时,我已经忘记了那个其他更改,直到几个月后再次进入该仓库时才找到它。我需要一个方法来在每天结束时提醒我系统上任何未提交的更改。

因此诞生了这个“未提交”脚本:它可以通过您的系统 locate(1) 命令或通过遍历文件系统树本身来找到版本控制目录,并在标准输出上打印有关您驱动器上仍存在的任何未提交更改的报告。通过从 cron(8) 作业中运行它,您可以创建此通知常规。

安装和运行“未提交”

您可以使用以下命令从Python包索引安装“未提交”的最新版本

$ pip install uncommitted

这应该会使“未提交”shell命令可供您使用,并将其放在与Python相同的目录中。然后,您可以通过键入以下内容在目录及其子目录上运行“未提交”

$ uncommitted ~

如果您想获得所有存储库的列表,而不仅仅是那些有未提交更改的存储库,您可以使用“-v”详细选项

$ uncommitted -v ~

您始终可以通过运行不带参数的“未提交”或使用“-h”或“–help”选项来获取帮助。

还支持使用 locate(1) 命令扫描存储库,这使得“未提交”即使在非常大的文件系统上也能快速运行

$ uncommitted -l ~/devel

但请注意:由于大多数系统上locate(1)数据库每天只更新一次,这可能会错过您上次运行后创建的存储库。如果您的家目录因为权限、加密或您安装的locate(1)版本而缺失在数据库中,它将完全无法工作。因此,在使用此选项之前,请务必手动验证它确实可以看到您故意留下的未提交更改!

支持的版本控制系统

目前,“未提交”支持以下版本控制系统:

要运行,“未提交”需要从shell中可运行的相应版本控制系统的命令行工具。请注意,如果有人愿意贡献代码以支持Bazaar或其他更神秘的版本控制系统,并且希望贡献额外的检测和扫描例程,我并不反对。

变更日志

2.3 (2020年5月14日)

  • 错误修复:当子模块的目录名本身包含括号时,匹配git子模块名称的正则表达式会混淆。

2.2 (2020年2月4日)

  • 由于Fabio Leimgruber的帮助,提高了Windows兼容性!

2.1 (2018年2月22日)

  • 在跟随符号链接模式下运行时,未提交现在小心地避免符号链接循环和访问相同的目录两次。

  • 如果存在对应的版本控制命令行未安装的存储库,现在将打印警告并继续运行(而不是崩溃)。

2.0.1 (2018年1月21日)

  • 通过将所有内部处理切换到使用字节而不是字符串来修复Python 3中的-l / --locate错误。

1.9 (2017年7月4日)

1.8 (2016年10月30日)

  • 添加-I以忽略匹配子字符串的存储库。

  • 添加-n以检测和列出非跟踪分支。

  • 错误修复:如果文件名有编码错误,则不再报错。

1.7 (2016年10月9日)

  • 报告所有未推送的git提交,而不仅仅是当前分支的提交。

  • 添加-L以在遍历文件系统时跟随符号链接。

  • 添加-u以打印git存储库中的未跟踪文件。

1.6 (2014年2月26日)

  • 显示git提交是否需要推送。

1.5 (2013年10月29日)

  • 修复了Python 3下的Subversion支持。

  • 将Subversion添加到测试套件。

1.4 (2013年10月5日)

  • -w设置为默认值,而不是-l

  • 添加与Python 3的兼容性。

1.3 (2010年5月10日)

  • 错误修复:Git命令是“status”而不是“st”。

1.2 (2010年5月9日)

  • Eapen为支持Git贡献了代码。

1.1 (2010年4月24日)

  • 错误修复:locate(1)命令行更改为使用shell通配符,因为它在Mac OS X下不支持正则表达式。

  • 修复bug:所有仓库都被错误地称为“Subversion”仓库。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

uncommitted-2.4.tar.gz (12.0 kB 查看散列值)

上传时间 源代码

支持