[OpenBSD] Remove old server.
[i18n-zh.git] / git.txt
blob25d0ed145b0c65f7f90c1b88c528169601d61f83
1 If you are commit to the i18n-zh project repository, please read this first.
3                 ============================================
4                     Guide to i18n-zh project repository
5                 ============================================
7 * Introduction
8 * Software version requirements
9 * Configuration
10 * Repository on repo.or.cz
11 * Repository maintenance
12 * Common git operation
13 * Getting the latest upstream code
14 * Using git-svn
15 * Diff & Patch
16 * File permission & encoding
17 * Verifying your po file
18 * Formating your po file
20 Introduction
21 ============
22 *) l10n
24 *) doc
26     1. Translation
28     2. Write document
30 *) i18n
33 Software version requirements
34 =============================
35 *) GNU gettext 0.16.1
36 *) Python 2.4.4
37 *) translate-toolkit(pomerge & pofilter) 1.0.1
40 Configuration
41 =============
42 The flowwing is the sample configuration, please modify some fields.
44 *) ~/.gitconfig
45     [color]
46         branch = auto
47         diff = auto
48         status = auto
50     [core]
51         repositoryformatversion = 0
52         compression = 9
54     [diff]
55         color = auto
57     [pack]
58         compression = 9
59         window = 128
60         depth = 64
62     [svn]
63         repack = 1000
64         repackflags = -a -d -l
66     [user]
67         # email = dongsheng.song@gmail.com
68         # name = Dongsheng Song
70 *) ~/.ssh/config
71     # Host repo.or.cz
72     #     HostName 152.69.94.80
73     #     Port 2222
74     #     User cauchy
77 Repository on repo.or.cz
78 ========================
79 *) gitweb
81     http://repo.or.cz/w/i18n-zh.git
83 *) clone
85     # cat .git/branches/origin
87     git://repo.or.cz/i18n-zh.git
88     http://repo.or.cz/r/i18n-zh.git
90 *) push
92     git+ssh://repo.or.cz/srv/git/i18n-zh.git
95 Repository maintenance
96 =====================
97 *) pack
99     git-repack -a -d -f --window=128 --depth=64
101 *) fsck
103     git-fsck --unreachable --strict HEAD $(cat .git/refs/heads/*)
104     git-prune
107 Common git operation
108 ====================
109 *) clone
110     git-clone git://repo.or.cz/i18n-zh.git
112 *) update
114     "git-pull -v" or "git fetch", See section "Getting the latest upstream code".
116 *) restore
117     git-checkout -f filename
119 *) commit
121     git-commit -a -m "your log messages"
123     if you commit patch by someone, use option "--author":
125     git-commit -a --author someone -m "your log messages"
127 *) reset
129     git reset --soft HEAD^
131 *) push
133     git-push git+ssh://repo.or.cz/srv/git/i18n-zh.git master:master
136 Getting the latest upstream code
137 ================================
138 There are two ways to update your local repository. Which one to use depends on
139 whether you have committed changes in the meantime.
141 *) No changes: pull
143     The command to update your local repository is:
145     git pull
147     It will pull down the latest repository information from the origin remote
148     file (which points at where you initially cloned the repository from), then
149     merge. If the new changes don't conflict with anything locally, the merge
150     will "fast-forward" your branch reference to the new head. If new changes
151     do conflict, it will try to do an automatic merge using a couple of
152     different schemes, and then automatically commits the merge if it's
153     satisfied. If you notice that your pull resulted in a merge (in the output
154     of pull), you might want to use gitk to see if the merge did what you
155     expected it to. If it isn't satisfied, then you have to resolve the
156     conflict manually.
158 *) You've made changes: fetch and rebase
160     If you have committed local changes, then git-pull will create a spurious
161     "Merge" commit, which will pollute the change list when you later push
162     upstream. To avoid this, do these two commands:
164     git fetch
165     git rebase origin
167     Instead of merging, this attempts to insert the changes you pull from the
168     origin repository before your local changes, avoiding the merge message.
171 Using git-svn
172 =============
173 *) Clone a repo (like git clone)
175     git-svn clone -T trunk -b branches -t tags https://i18n-zh.googlecode.com/svn/trunk
177 *) Reset your master to trunk (or any other branch)
179     git reset --hard remotes/trunk
181 *) Do some work and commit locally to git
183     git commit ...
185 *) Something is committed to SVN, rebase your local changes against the latest
186 changes in SVN
188     git-svn rebase
190 *) Now commit your changes (that were committed previously using git) to SVN,
191 as well as automatically updating your working HEAD:
193     git-svn dcommit
196 Diff & Patch
197 ============
198 *) diff
199     diff -wBNr -x .git . i18n-zh.origin
201 *) patch
202     patch -p0 < zh_CN.patch
205 File permission & encoding
206 ==========================
207 *) permission
209     set umask to 002, i.e.
211         set directory to 0775
212         set common file to 0664
213         set execute file to 0775
215 *) encoding
216     using utf-8 without signature(no BOM)
219 Verifying your po file
220 ======================
221 Please verify your po file is valid:
223     msgfmt --check-accelerators --statistics -c -o zh_CN.mo zh_CN.po
226 Formating your po file
227 ======================
228 Please format your translation before send po to the mailing list,
229 or commit to the repository.
231     msgmerge --no-wrap -F -o zh_CN-new.po zh_CN.po example.pot
232     mv -f zh_CN-new.po zh_CN.po
234 This can minimize the diff output, review your translation is easy.