在Debian Etch上使用Bazaar版本控制系统(VCS)

在Debian Etch上使用Bazaar版本控制系统(VCS)

版本1.0
作者:Falko Timme

Bazaar是GPL提供的分布式版本控制系统(VCS); 它类似于Subversion(svn)。 Bazaar由Canonical有限公司赞助,该公司是开发Ubuntu Linux发行版的公司,因此Ubuntu项目是Bazaar最突出的用户。 本文介绍如何在Debian Etch系统上设置和使用Bazaar,以及如何配置SFTP / HTTP服务器来托管Bazaar存储库。

我不会保证这将为您工作!

1初步说明

在本教程中,我将使用两个Debian蚀刻系统:

  • IP地址192.168.0.100:Bazaar将要安装的工作站和软件将被开发(将由Bazaar管理); 在本文中,我将其称为工作站 ;
  • IP地址192.168.0.101 :将保留Bazaar存储库并提供SFTP和HTTP服务的服务器; 我将在本文中将其称为服务器 。 我将在这里使用lighttpd作为Web服务器,但您也可以使用任何其他Web服务器(例如Apache)。

我将在两个系统上使用用户名falko

大多数集市使用示例摘自本指南: http//doc.bazaar-vcs.org/latest/en/mini-tutorial/index.html ,但除了本指南外,本指南还说明了如何安装SFTP和lighttpd 服务器和Bazaar在工作站上使Bazaar体验对于不那么有经验的Linux用户来说更加平滑。

2在服务器上安装SFTP和Lighttpd

服务器:

(本章中的所有步骤必须以root用户身份完成!)

我们在服务器上安装SFTP和lighttpd:

apt-get install ssh openssh-server lighttpd

接下来,我们在这种情况下创建一个用户帐户 - falko ,它使用/ usr / lib / sftp-server shell代替/ bin / bash或任何其他shell:

useradd -m -s /usr/lib/sftp-server falko

这将创建用户falko与主目录/ home / falko

falko分配密码:

passwd falko

然后通过将/ usr / lib / sftp-server添加到/ etc / shells中来使其成为一个有效的登录shell:

echo '/usr/lib/sftp-server' >> /etc/shells

现在我创建目录/ home / falko / public_html ,它将是lighttpd的文档根目录,并且将包含我们的Bazaar信息库:

mkdir /home/falko/public_html
chown falko:falko /home/falko/public_html

要告诉lighttpd文档根已更改为/ home / falko / public_html ,请打开/etc/lighttpd/lighttpd.conf并修改server.document-root行:

vi /etc/lighttpd/lighttpd.conf
[...]
server.document-root       = "/home/falko/public_html"
[...]

以后重启lighttpd:

/etc/init.d/lighttpd restart

3在工作站上安装集市

工作站:

以root身份运行以下命令:

apt-get install bzr python-paramiko

如果工作站上还没有正常的用户帐户,请立即创建一个:

useradd -m -s /bin/bash falko
passwd falko

4使用集市

工作站:

现在以普通用户身份登录,或者以root身份登录,运行

su falko

成为普通用户(在这种情况下是falko )。

然后去你的家目录:

cd ~

以下示例或多或少地取自http://doc.bazaar-vcs.org/latest/en/mini-tutorial/index.html

首先,告诉Bazaar你是谁:

bzr whoami "Falko Timme <ft@example.com>"

检查Bazaar是否正确存储您的身份:

bzr whoami
falko@server1:~$ bzr whoami
Falko Timme <ft@example.com>
falko@server1:~$

现在让我们创建一个包含测试文件的测试目录:

mkdir myproject
cd myproject
mkdir subdirectory
touch test1.txt test2.txt test3.txt subdirectory/test4.txt

myproject目录是我们要用Bazaar管理的软件项目的基本文件夹。 在该目录中运行所有bzr命令很重要! 如果您不确定在哪个目录中,请运行

pwd

Bazaar必须在项目目录中初始化:

bzr init

这将创建一些Bazaar需要管理您的项目的隐藏文件。 运行时,您可以在myproject目录中看到隐藏的文件夹.bzr

ls -la
falko@server1:~/myproject$ ls -la
total 16
drwxr-xr-x 4 falko falko 4096 2007-12-19 16:14 .
drwxr-xr-x 4 falko falko 4096 2007-12-19 16:13 ..
drwxr-xr-x 6 falko falko 4096 2007-12-19 16:14 .bzr
drwxr-xr-x 2 falko falko 4096 2007-12-19 16:13 subdirectory
-rw-r--r-- 1 falko falko    0 2007-12-19 16:13 test1.txt
-rw-r--r-- 1 falko falko    0 2007-12-19 16:13 test2.txt
-rw-r--r-- 1 falko falko    0 2007-12-19 16:13 test3.txt
falko@server1:~/myproject$

现在跑

bzr add

以使myproject文件夹中的所有文件/目录被版本化。 输出如下:

falko@server1:~/myproject$ bzr add
added subdirectory
added test1.txt
added test2.txt
added test3.txt
added subdirectory/test4.txt
falko@server1:~/myproject$

接下来将文件/目录添加到您的分支(使用小注释,以便您知道此提交是什么):

bzr commit -m "Initial import"

输出如下:

falko@server1:~/myproject$ bzr commit -m "Initial import"
added subdirectory
added subdirectory/test4.txt
added test1.txt
added test2.txt
added test3.txt
Committed revision 1.
falko@server1:~/myproject$

现在我们来修改(空)文件test1.txt

vi test1.txt
some text...

bzr diff

Bazaar会向您显示更改:

falko@server1:~/myproject$ bzr diff
=== modified file 'test1.txt'
--- test1.txt   2007-12-19 15:19:42 +0000
+++ test1.txt   2007-12-19 15:20:39 +0000
@@ -0,0 +1,1 @@
+some text...

falko@server1:~/myproject$

要提交更改(再次使用注释),请运行

bzr commit -m "Added first line of text"
falko@server1:~/myproject$ bzr commit -m "Added first line of text"
modified test1.txt
Committed revision 2.
falko@server1:~/myproject$

命令

bzr log

显示最新动作的历史记录:

falko@server1:~/myproject$ bzr log
------------------------------------------------------------
revno: 2
committer: Falko Timme <ft@example.com>
branch nick: myproject
timestamp: Wed 2007-12-19 16:22:52 +0100
message:
  Added first line of text
------------------------------------------------------------
revno: 1
committer: Falko Timme <ft@example.com>
branch nick: myproject
timestamp: Wed 2007-12-19 16:19:42 +0100
message:
  Initial import
falko@server1:~/myproject$
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏