在 Snow Leopard 中,每当用户在 Finder 中复制目录时,我想触发脚本/代码。我怎样才能做到这一点?
我一直在寻找文档,但我对这类工作有点太新了,无法识别正确的方法。
动机:如果一个目录处于版本控制之下,比如 git、hg 或 svn,并且用户复制了该目录,那么我想运行一个脚本来搜索原始目录,然后在版本控制中创建一个“标签”。如果用户重命名目录,比如在 10 秒内,那么重命名将成为该标签注释的一部分。我最终还想添加一些覆盖图标来指示目录的版本控制状态。
扩展动机:我面临的问题是版本控制软件,如 git 和 hg,在我看来太复杂了,即因为它与文件系统太断开,并且充当某种影子文件系统。我是版本控制的忠实拥护者,并且已经使用了很多年——但我也看到了部署的局限性,因为它的复杂性。现实情况是,如果更易于使用,将会有更多代码处于版本控制之下。
我正在研究创建一个不需要终端访问的更易于使用的 VCS 系统的可行性。想象一下,如果 Apple 将其作为 finder 和/或 iLife 的一部分,版本控制(代码)会是什么样子——简单但足够好。实际上,我显然不会重新发明 vcs,但我希望为 hg 之类的东西构建一个模块/插件,并将其与重新设想 vcs 如何用于以查找器为中心的 UI 结合起来a - 全部为更休闲的程序员创建一个更简单但足够好的 VCS。
检测目录复制和重命名的第一个技术障碍 - 因此这个问题。
文件数量:由于这个项目的主要动机是源代码版本控制,我只需要匹配与您正在处理的项目数量相匹配的目录数量。所以,如果你正在处理两个不同的项目,那么我认为我只需要跟踪两个目录——每个项目的根目录。现在,我完全承认,在这一点上,我可能错误地描述了需求,所以也许我需要跟踪项目中的所有目录,或者甚至这些项目中的所有文件,所以让我们说,为了争论,一个典型的项目中有 1,000 个文件。所以,基本上,可能只有几个目录,或者几百个目录,或者几千个文件。重要的是,我认为50,000 个文件将处于频谱的高端。
用户从查找器中复制目录“主干”
主干 --> 主干副本
如果用户将 'trunk copy' 重命名为 'trunk copy fixed #255 per colours',trunk 目录(不是副本)将被标记为注释 'fixed #255 per colour'
参考资料:
-
- 如果注册目录中的某些内容发生更改,则在启动时获得通知- 如果大目录中的任何一个文件发生更改。它不会告诉你,我不认为,发生了什么变化。
-
- 您可以注册以获取单个文件级别的通知。您的选择(至少)如下: NOTE_DELETE | NOTE_WRITE | 注意_EXTEND | NOTE_ATTRIB | 注意_LINK | 注意_重命名 | NOTE_REVOKE 这可能用于检测目录重命名(它适用于 dirs 吗?),但显然不是 dir 副本。
稍微相关的问题:
谢谢,JJ