Python 使用git跟踪dropbox的更改?
跳到底部查看TLDR 问题: 在我们的环境中,每个人都使用Dropbox来协作开发大型编码项目。它解决了每个人都要及时了解其他人所更改的内容的问题,还提供了一些简单的版本控制,如“谁更改了什么,何时更改了什么” Dropbox没有提供的,我正在寻找的,是Git令人敬畏的调味汁,就版本控制、责备、内容差异等而言 我现在的工作内容: 我仍然使用dropbox作为我们的“版本控制”,因为其他“开发人员”可能无法理解git,我知道这很容易,但他们讨厌更改 为了让我看到“到底发生了什么,是谁在做什么”,我正在使用Git跟踪该项目的整个dropbox文件夹 我必须每隔一段时间代表其他开发人员手动提交一次,以便跟踪Git令人敬畏的酱汁的使用情况 我在寻找什么: 有人对我所处的环境有经验吗?我想找到一些可以注意到Dropbox中的更改的东西,提取使用Dropbox的API进行更改的人的用户名,并将更改自动提交到git 我还没有找到任何这样的解决方案,并且已经开始用Python编写一个应用程序来做我想做的事情,我可能不得不在github上托管这个应用程序并寻求帮助,因为空闲时间很短,而且对Python比较陌生 我能够从dropbox API中提取RSS提要并解析出文件是什么以及是谁更改了它,但还不足以将其挂接到Git提交中,这应该是微不足道的。我只是不想重新发明任何轮子 TLDR: 我想自动跟踪dropbox中发生的更改 文件夹,并将其Git提交,包括人员的姓名 谁使用dropbox的API或类似工具在dropbox中更改了文件。可能是使用Python,但欢迎使用任何东西 提前感谢。 吉特回购,如果你想帮忙的话!Python 使用git跟踪dropbox的更改?,python,git,version-control,dropbox,Python,Git,Version Control,Dropbox,跳到底部查看TLDR 问题: 在我们的环境中,每个人都使用Dropbox来协作开发大型编码项目。它解决了每个人都要及时了解其他人所更改的内容的问题,还提供了一些简单的版本控制,如“谁更改了什么,何时更改了什么” Dropbox没有提供的,我正在寻找的,是Git令人敬畏的调味汁,就版本控制、责备、内容差异等而言 我现在的工作内容: 我仍然使用dropbox作为我们的“版本控制”,因为其他“开发人员”可能无法理解git,我知道这很容易,但他们讨厌更改 为了让我看到“到底发生了什么,是谁在做什么”,我
如果您可以在linux上托管它,那么使用如何?每当dropbox sync更新dropbox文件夹中的文件时,iwatch可以运行python脚本(当用户被拉入时)。然后使用运行两个git命令,
git add'filename'
和git commit-m“autocommit by system for user X changes”
当然,它不是很漂亮,但它可以完成任务,而且除非有更新,否则它不会运行。我使用dropbox作为git回购,遵循 因此,我能想到的最简单的方法是: 1) 在dropbox文件夹中初始化回购(这将在与您共享回购的所有人之间自动同步) 2) 使用github上的远程设备或您自己的git服务器(如果有)配置它。这样,跨文件和用户的所有更改都将在远程设备上跟踪
hash Each call to /metadata on a folder will return a hash field, generated by hashing all of the metadata contained in that response. On later calls to /metadata, you should provide that value via this parameter so that if nothing has changed, the response will be a 304 (Not Modified) status code instead of the full, potentially very large, folder listing. This parameter is ignored if the specified path is associated with a file or if list=false. A folder shared between two users will have the same hash for each user.
3) 编写一个脚本作为cron作业,定期从本地dropbox提交,然后在远程git服务器上运行,并查找增量和修订版。您可以从dropbox API ref中获得该脚本,从这里开始-
4) 完成上述操作后,您可能希望包括一个调用,该调用根据dropbox返回一个哈希值,可用于跟踪更改,然后调用您的轮询脚本。到目前为止,dropbox似乎没有办法通知您更改,而不是每隔几分钟向远程轮询一次
hash Each call to /metadata on a folder will return a hash field, generated by hashing all of the metadata contained in that response. On later calls to /metadata, you should provide that value via this parameter so that if nothing has changed, the response will be a 304 (Not Modified) status code instead of the full, potentially very large, folder listing. This parameter is ignored if the specified path is associated with a file or if list=false. A folder shared between two users will have the same hash for each user.
老实说,您的团队需要一周的git实践,然后才能从更强大的工作流中获益。不要尝试自动提交。这会导致下地狱。我理解您的情况,但您可能会看到,仅为每一个文件更改自动提交存在的危险。您会失去git的很多能力r那样做。@voithos肯定有问题,但替代方案通常是没有版本控制。哪一个更糟?仅供参考:Google Drive支持开箱即用的版本控制。您是否将代码发布在这里或其他任何地方,以便我们看到所做的事?您可以添加TODOs来显示您存在的问题。我将在稍后介绍我目前为止所做的。问题很明显是因为用户1582没有足够的权限来决定团队应该如何行动的结果。@VoronoiPotato你可能是对的,虽然有一个解决方案可以让更多的人受益,而不仅仅是我自己。@haq我感觉到你的痛苦。爱它,改变它,或者离开它。我只是不认为这种自动提交的方法会让你走得更远。@Christoph我认为它会完成我想要做的事情。我不会充分利用git的潜力,但在“责备”方面它肯定会有所帮助“。现在,我们只知道是谁修改了一个文件,何时修改的,而不知道修改了什么。这篇文章本身就是无价之宝,也可以看看谁是最活跃的,等等。我正在决定是否挂接RSS提要进行更新以启动提交,这一部分很简单,寻找“更发达”的东西。你也看了吗?对于这样的事情来说,它足够稳定,在您感兴趣的文件夹中编写一个关于目录更改的git处理程序将非常简单。或者你可以直接迁移到Google drive?@haqthat感谢你提供了pyinotify的链接。我不知道它的存在。不过,我认为你不会发现任何“更发达”的东西。这完全属于shell脚本领域,许多像这样的脚本都是“黑”的,无法进入更广阔的世界。考虑到这一点,但这超出了我要做的范围。我不想在dropbox中保留git回购,我想要dropbox的git回购。我在Dropbox API中没有看到任何事实上告诉你是谁修改了文件的东西……很有趣。每次用户帐户上的文件发生更改时,您可以使用pyintofy和等效工具创建username.myfileextension。但是您需要在用户框上运行代码