Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用git跟踪dropbox的更改?_Python_Git_Version Control_Dropbox - Fatal编程技术网

Python 使用git跟踪dropbox的更改?

Python 使用git跟踪dropbox的更改?,python,git,version-control,dropbox,Python,Git,Version Control,Dropbox,跳到底部查看TLDR 问题: 在我们的环境中,每个人都使用Dropbox来协作开发大型编码项目。它解决了每个人都要及时了解其他人所更改的内容的问题,还提供了一些简单的版本控制,如“谁更改了什么,何时更改了什么” Dropbox没有提供的,我正在寻找的,是Git令人敬畏的调味汁,就版本控制、责备、内容差异等而言 我现在的工作内容: 我仍然使用dropbox作为我们的“版本控制”,因为其他“开发人员”可能无法理解git,我知道这很容易,但他们讨厌更改 为了让我看到“到底发生了什么,是谁在做什么”,我

跳到底部查看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,但欢迎使用任何东西

提前感谢。

吉特回购,如果你想帮忙的话!

如果您可以在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。但是您需要在用户框上运行代码