unix - 如何在远程服务器上进行 hg clone 后设置权限?

标签 unix mercurial centos file-permissions

我是 DVCS 的新手,但我终于设法弄清楚它是如何工作的,我首先想检查我的工作流程中的上述步骤是否合乎逻辑:

步骤:本地做:hg init , 添加和修改文件, hg add . , hg commit hg push path_to_my_ repo ;然后在远程服务器上执行hg init , hg clone path_to_my_ repohg update .

(直接在 dev.domain.com 中克隆,因为 repo 内容提取到目录中,这样可以吗?!)

问题:我确实在远程服务器上获取了我的文件,它们都在那里,但是 我无法通过我的 FTP 编辑其中任何一个 /SFTP 客户端?我无法编辑这些添加的文件夹中的任何内容,因此这一定是权限问题。

我试过 ls -al proj1/:

drwxr-xr-x  3 root  root    4096 Mar 23 15:26 ./
drwxr-x--- 18 moove nobody  4096 Mar 23 15:26 ../
drwxr-xr-x  3 root  root    4096 Mar 23 15:26 .hg/
-rw-r--r--  1 root  root   40272 Mar 23 15:26 wp-app.php

和 chown root:root proj1 但这并没有解决问题。

请问有什么建议吗?

最佳答案

您的示例工作流程不正确。
“远程服务器”是指存储库的中央服务器,每个人都可以从中推送/拉取,对吗?

如果是,那么这部分不是必需的:

then go on remote server and do hg init, hg clone path_to_my_ repo and hg update



您应该在一开始就在服务器上设置一次中央存储库(其中可能包括 hg init 来创建它,但不包括其余部分)。
--> 然后每个人都可以插入和拉出它,就是这样。
之后您无需在服务器上执行任何操作(例如通过 FTP 编辑文件,就像您尝试过的那样),当然也不需要 hg update每次推后!
( hg update 在服务器上的存储库中创建一个工作目录,如果您只想从该存储库推送和拉取,则不需要该目录)

设置服务器还包括权限(不一定是服务器上的文件权限 - 更像是对某个存储库具有推/拉权限的人)。

有关如何设置 Mercurial 服务器的不同可能方式的概述,请参阅 Publishing Repositories在 Mercurial 维基中。
(我无法直接帮助您 - 我 每天使用 Mercurial,但我不知道如何设置 Mercurial 服务器,更不用说在 Unix 上)

编辑:

老实说,我不确定我是否了解您的工作流程。
为什么“ssh 服务器,克隆 repo 创建”的东西?我不明白您为什么要在同一台服务器上再次克隆中央存储库。

通常的基本工作流程是这样的:
您在本地工作,编写代码并将其提交到本地存储库。
在某个地方,您的项目有一个中央存储库(无论是在 Github/Bitbucket 上,还是在您自己的服务器上——这就是我说“中央服务器”时的意思)。提交后,您推送到那里,现在您的更改在中央存储库中。
您的同事也这样做,因此您可以再次从中央存储库中提取以获取您的同事所做的更改(他们也可以提取以获取您的更改)。

然后你说:

We will pull (clone first time) the files on a subdomain (dev) first, every day before leaving, and when the project is finished, we will do the same thing on the server by cloning the repo on the live server



这只是为了部署您的项目,对吗?我想我在第一次阅读您的问题时误解了这一点。
所以克隆到“dev”子域并不是为了有一个更多的存储库来推/拉,而只是为了部署一个测试环境。正确的?
如果是,那没关系。但为了做到这一点,您不必在中央存储库所在的服务器上进行 FTP/SSH。
您可以在开发服务器 ( hg init ) 上创建一个新存储库,然后定期创建 hg pull来自中央存储库和hg update更新开发服务器上的工作副本。这一切都在开发服务器上,无需在中央存储库所在的服务器上执行任何操作。

关于unix - 如何在远程服务器上进行 hg clone 后设置权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9844741/

相关文章:

bash - 返回一个月的最后一天

git - 来自 Github 的 hg-git 克隆给出 "abort: repository is unrelated"

svn - 哪个 SCM 可以轻松处理 90,000 个文件

linux - 如何解决 "no cgroup mount found in mountinfo: unknown"错误?

linux - Grep 在邮政编码列中查找具有 4、5、6、7 和 9 的行

Bash 脚本 : Send files to SFTP using Expect

shell - 哪个终端命令只获取 IP 地址而不获取其他内容?

git - BitBucket.org - 仅限制用户数量?

gcc - CentOS 7 升级了 gcc/g++ 但似乎无法使用?

PHP:为什么 strtotime 转换会给出不同的值并且仅限于特定日期?