协作脚本 - 跟踪用户贡献

时间:2010-12-06 01:16:29

标签: php javascript mysql css

我正在开发PHP和MySQL的协作工具,我想问一下最有效的方法是做什么?说我有一个文本块,将由不同的用户编辑。我需要记录每个更改,并且当查看更改的文本时,应突出显示特定用户更改的文本(可能使用css和/或jQuery)。

我不是在寻找一个特定的代码片段(你可以看到我的问题相当严重),但我希望能够了解如何解决这个特定的问题。

一如既往地为所有建议欢呼。

3 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是,如果您使用git进行版本控制,则可以使用git blame命令。它将逐行向您展示谁改变了什么,在什么时间和什么时候改变了什么。这是some documentation,这里是gui。我更喜欢使用

从命令行运行它
git blame path/to/filename.m

如果您不使用git,并希望了解更多信息,可以查看Git Community Book

答案 1 :(得分:0)

如果你要从头开始构建它,那么我有一个想法。您可以创建一个表'事件',在其中记录对文档所做的每个更改。

该表包括3个概念:“修改时间”,“修改者”和“更改内容”。 “变化”是这里的主要问题。在我看来,由于你很可能需要支持“恢复”能力,你应该保存所有版本的文件。因此,在“更改内容”中,您只需要2列:“before_change_text_link”,它指的是更改前的文件,“after_change_text_link”指的是更改后的文件。通过这种方式,您可以记录所有更改。

然后,您可以通过jQuery / css突出显示不同用户所做的更改,并在服务器上显示一些比较文本过程。

答案 2 :(得分:0)

好的,所以我提出了一个解决方案,当用户提交新文本,在其上运行diff,并注册已更改的行。这些将存储在具有用户ID的mysql表中,diff返回的字符串以及它各自的行号。这样我就可以返回原始文本,返回特定用户的更改字符串,并使用正则表达式突出显示它。