バージョン管理
ファイルの修正履歴を残せて、それらをあとから参照できるように
するツールをバージョン管理システムという。
VC(Version Control)、SCM(Source Code Management/Software Configuration
Management) などの呼称が用いられることが多い。
- SCCS(Source Code Control System)
バージョン管理システムのはじまり。
単一ファイルシステム上で用いる。
- RCS(Revision Control System)
使用形態はSCCSと同様。多くのシステムに移植され
基本的なバージョン管理システムとして普及した。
基本的には1つのファイルのみ管理する。
- CVS
(Concurrent Version System)
RCSをベースに、複数ファイルを集合として管理したり、
ネットワーク越しに複数人で使えるようにしたもの。
- Subversion
CVSの欠点を補ない、すべてを「ディレクトリ+ファイル」
という単純概念で作り直したもの。
- git
Linuxカーネル開発のために作られた。
リポジトリ(履歴保管庫)を分散できる。
- Mercurial
Linuxカーネル開発利用を目指して作られたが不採用。
Python
で書かれていて移植性が高い。高速。
- Bazaar
Pythonで書かれた柔軟なDVCS。
その他多数ある。
共同開発では、CVSが用いられていたが最近では Subversion/Mercurial/git
が利用されることが多い。
ここではMercurialを用いたファイル更新管理を覚える。
開発+公開
このリポジトリをコピーして開発・公開してみよ。
hg clone http://roy/~yuuji/2017/inet/vc/jk
公開は、公開したいディレクトリ(~/public_html
以下のどこか)に hgweb.cgi
をコピーして chmod +x し、
import os
os.environ["LC_CTYPE"] = "ja_JP.eucJP"
application = hgweb("/home/irhome/c10x/c10xzzz/hgdir", "タイトル")
のように、該当ディレクトリとタイトルを含めて書き換える。
- Installation
- Use Locally
- init, add(remove), ci, up, revert, tag, diff, log
- Emacs C-x v v, C-x v l, C-c h c
- Basic concept
- Use in Remote
- clone, push, pull
- merge, resolved
- pull from network
- Named Branch
- branch, merge, closebranch
- clone vs. Named Branch
- Practical Use
- mq, qinit, qnew, qrefresh, qdiff
- .hgignore
- hgrc
- extension (kwd, color, glog, transplant, mail)
- Emacs more
- Large Scale Development
- export, import
- bundle, unbundle
- archive
- Third Party Hack
- Hybrid Repository
- Emacs Backend Switching
- MQ Practical
- Hooks
- Collaborative Development
- Moderated
- Multiple Author (Manage Group Account)
- FAQ
- Manage Configuration Files
- Keyword Expansion
- hgrc more
- DB Corruption
- CVS? svn? hg? rsync?
- TimeStamps
- Datespec -d '{<2009-1-1}'
yuuji@koeki-u.ac.jp