如何在编辑时锁定Ubuntu服务器中的文件

时间:2016-07-21 21:22:27

标签: filezilla ubuntu-server file-locking filelock

这是我第一次与其他开发人员一起开发项目(现在只有两个)。我们的想法是使用FTP / SFTP软件(如FileZilla)直接从服务器编辑文件。我们希望打开用于编辑的任何文件都被阻止,因此其他用户无法同时编辑它。这可能吗?如果没有FileZilla,也许使用其他软件?我看过Git,Codiad和其他类似的解决方案,但它们太复杂了(在GitHub中合并并发版本并不简单)或者有bug(Codiad没有保存文件)。我们认为文件锁定是原始的但对我们来说足够好(我们在同一个房间)。问题是:我们如何实施它?

4 个答案:

答案 0 :(得分:7)

不要那样走 首先,只有一个代码副本是冒险的,如果直接在服务器上编辑文件会发生什么。
其次,我真的不明白为什么人们会发现def download_csv respond_to do |format| format.html format.csv { render text: @customer_detail.to_csv } end end矫枉过正 对于小型团队而且没有实际的交付管道,您无需掌握整个.col-sm-3 - if @customer_detail.save = link_to "Download", download_csv_customer_detail_path(@customer_detail.id, format: "csv"), class: "btn btn-primary"权限。您甚至不必使用分支和合并。

开始使用git所需的只是:
git - 下载存储库副本并开始使用它 git - 将文件或/和文件夹标记为提交的阶段 git clone URL_OF_REPOSITORY - 提交/接受上一步中标记的文件和文件夹中的更改,并在本地保存有关这些更改的信息 git add PATH_TO_EDITED_FILE_OR_FOLDER - 将提交的更改上传到远程存储库
git commit -m 'DESCRIPTION OF CHANGES' - 下载其他人从远程存储库提交和推送的更改

如您所见,命令不希望您提供任何复杂的信息。只是远程仓库的URL,您认为可以与他人共享的文件以及所做的更改的所需描述。这真的不难。人们应该开始熟悉版本控制系统,因为这是目前软件开发的核心技能之一。

答案 1 :(得分:3)

如果您是机器的所有者,您可以为团队安装Koding(最多4个免费)并在协作模式下使用Webide。

答案 2 :(得分:2)

  • FTP中没有文件锁定。
  • SFTP已锁定,但通常不支持,详情请见SFTP file lock mechanism
  • WebDAV中存在锁定,但是像mod_dav这样的常见实现实际上只锁定了一个带有WebDAV“world”的文件,实际的底层文件没有被锁定。

所以我不知道任何通常可用的锁定文件remotelly的机制。

答案 3 :(得分:2)

Beeing一个小团队loking是好的(它不应该用在大项目上)但是你应该研究一下git,我发现如果你们同时使用相同的代码,它只会变得混乱。为了消除Git GUI中的一些复杂性,我使用的是sourcetree,但还有很多其他的,它们只是帮助您可视化您正在做的事情以及正在发生的变化。

现在回答你的问题,我不知道任何独立的软件会做你想要的,但Dreamweaver确实有办法为自己锁定文件。这是通过创建一个名为filename.lock的文件来完成的,这是一个文本文件,其中包含锁定它的详细信息。您可以手动执行此类操作,因此当您想要锁定文件时创建锁定文件,然后解锁它就删除它,并且您都希望不编辑具有锁定文件的文件。

它不是最好的解决方案或最新的解决方案,但取决于你的工作方式,它可以工作。