`
fan
  • 浏览: 143707 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hg在linux上的权限设定

 
阅读更多

1、建立hg账号:useradd hg

2、使用hg账号登录,进入目标工程test目录(test不能含有子目录),初始化工程:hg init

3、更改关键三个目录组写权限:chmod g+w .hg .hg/* .hg/store/

4、更改关键三个目录组设置(setgid):chmod g+s .hg .hg/store .hg/store/data

5、新建开发者账号:useradd -m foo

6、把新建的开发者加入hg组:usermod -a -G hg foo

7、enjoy it!

 

总结:将开发者加入目标工程所在的组,并且设置关键目录的组权限。注意:由于后面setgid只针对3个hg系统目录,如果第二步中工程含有子目录,这些目录没有组操作权限。最佳实践是初始化一个只含有.hgignore文件的空项目,完成后添加其它文件。

参考官方文档:http://mercurial.selenic.com/wiki/MultipleCommitters之The filesystem method,摘录如下:

 

The idea here is to create a repository that is accessible by members of a certain user group. Multiple users will be able to access it if they belong to this group.

The following steps apply to Unix-like operating systems:

  1. Add a new group to /etc/group. The recommended method for accomplishing this varies from system to system, but the end result is a new line in /etc/group like the following:

    project:x:100001:alice,bob,charlie

    Here, project is the name of the group.

  2. Create a repository that's writable by that group:
    mkdir /home/mercurial/project
    cd /home/mercurial/project
    hg init
    chgrp project .hg .hg/* .hg/store/*
    chmod g+w .hg .hg/* .hg/store/*
    chmod g+s .hg .hg/store .hg/store/data
    • The chgrp command marks the project as belonging to the project group.

    • The first chmod command marks the repository data writable by that group.

    • Finally, the second chmod command sets the 'setgid' bit on the project directories, which causes new files created in those directories to be marked as belonging to that group (rather than the user's default group).

分享到:
评论

相关推荐

    HG8210C服务器WEB目录html.tar.gz

    这种格式在Linux和Unix环境中广泛使用,可以将多个文件和目录打包成单一的文件,便于存储和传输。解压这个文件,我们可以得到HTML源代码,这些代码构成了服务器的Web界面。 HTML(HyperText Markup Language)是...

    HG255D-PPPOE,单线多拨,多媒体共享,挂卡中继,迅雷脱机下载教程(适合OpenWRT)

    在OpenWRT系统中,可以使用Samba或者NFS等协议搭建文件服务器,将存储设备(如硬盘)接入路由器,然后设置共享权限,让家庭内的所有设备都能够访问这些资源。这样不仅方便了文件的传输,还节省了网络带宽,因为数据...

    猪哥的嵌入式linux公房菜

    - **定义**:在一种平台上编译出另一种平台可执行的程序。 - **用途**:适用于嵌入式系统开发。 **8. 两本嵌入式Linux开发经典教程比较** - **《Embedded Linux Systems with the Yocto Project》**:侧重于Yocto...

    tortoisehg4ubuntu:在Ubuntu 20.04或更高版本上使用tortoisehg的脚本

    TortoiseHg是一款强大的Mercurial版本控制系统客户端,它为用户提供了直观的图形用户界面(GUI),使得在Linux系统中进行版本控制变得更为简单。本文将详细介绍如何在Ubuntu 20.04及更高版本上安装、配置和使用...

    目前最详细破解HG8245免拨号、开路由、开WIFI(绝对原创)-6月13日版.docx

    1. **设置电脑IP地址**:为了能够访问 HG8245 的管理界面,需要将电脑的IP地址设置为与光猫同一网段。一般情况下,光猫的IP是 `192.168.100.1`,所以电脑的IP应设为 `192.168.100.2`,子网掩码为 `255.255.255.0`,...

    初始化超级用户root密码

    不同的Linux发行版进入救援模式的方式可能略有不同,但通常是在BIOS设置中选择启动设备后,在启动选项中选择“救援模式”或“故障恢复模式”。 1. 对于大多数Linux发行版,如Ubuntu、Debian,可以选择`Advanced ...

    烽火adb工具.rar

    5. **远程shell**:`adb shell`提供了与设备交互的命令行环境,可以执行各种Linux命令,如启动、停止服务,修改文件权限等。 6. **重启设备或恢复模式**:`adb reboot`或`adb reboot recovery`可用于重启设备,进入...

    Mercurial+IIS+Active Directory+SSL

    - **配置IIS与Hgweb集成**: 在IIS中配置Hgweb应用,包括设置正确的文档根目录以及启用SSL加密。 - **Active Directory集成**: 配置Hgweb应用以使用Active Directory进行身份验证,确保只有授权用户才能访问仓库资源...

    toboot:EFM32HG Tomu板的引导程序

    引导加载程序 此存储库包含Toboot以及相关支持文件。... Chrome 用户可以使用(但 Linux 用户应首先确保正确设置 udev 权限。) 您可以使用dfu-util --list显示检测到的设备列表。 您可以使用dfu-util --

    HI3798MV100-NAND-遥控器补丁-update.zip

    2. **META-INF**:在Java和Android应用中,"META-INF"文件夹用于存放元数据,比如数字签名信息、版本控制、权限设置等。在更新包中,它可能包含关于软件的版本信息、签名证书,以及安装或更新过程所需的指令。 结合...

    Mercurial 权威指南 中文版

    - **协作**:允许多个开发者在同一项目上工作,而不会导致混乱。 - **追溯**:可以查看任何文件在过去任何时候的状态。 - **恢复**:轻松恢复到早期版本,避免因误操作或错误导致的问题。 - **分支与合并**:...

    matlab集成c代码-manymouse:https://hg.icculus.org/icculus/manymouse/

    《MATLAB与C代码集成——ManyMouse库解析》 MATLAB作为一款强大的数学计算和数据分析...在实际操作中,可能还需要解决一些系统特定的问题,例如权限、驱动兼容性等,但只要掌握了基本方法,这些挑战都是可以克服的。

    最简洁的git学习套路

    尽管Git可以在多种操作系统上运行,但在Linux环境下使用更为流畅。以下是一些常用的Linux命令: ##### 3.1 基本命令 - `cd /home`:进入 `/home` 目录。 - `cd ..`:返回上一级目录。 - `cd ../..`:返回上两级...

    经典Git学习资料ProGit

    - **GitHub Flow**:在GitHub上使用的一种流行分支策略,每个新功能或修复都在独立的分支上完成,然后通过Pull Request合并回master/main分支。 - **Git Flow**:一种较为复杂的分支管理模型,包含develop、release...

    progit-zh git官方文档-中文版

    - **在Linux上安装**:大多数Linux发行版提供了预编译的Git包,可以通过包管理器轻松安装。 - **在Mac上安装**:可以使用Homebrew等工具安装Git。 - **在Windows上安装**:可以通过官方提供的安装程序进行安装,安装...

Global site tag (gtag.js) - Google Analytics