2011年04月06日

awkでお手軽に複数行を一行にまとめる

複数行を一つにまとめる必要があったので、awkを使って変換してみた。

複数行の表示。

hissorii@MBA:~$ echo -e 'abc\ndef\nghi'
abc
def
ghi

printだと変化なし。

hissorii@MBA:~$ echo -e 'abc\ndef\nghi' | awk '{print $0}'
abc
def
ghi

printfだと、一行にまとまる

hissorii@MBA:~$ echo -e 'abc\ndef\nghi' | awk '{printf $0}'
abcdefghihissorii@MBA:~$

スペースをいれたければ、" "をくっつけてprintfでok。

hissorii@MBA:~$ echo -e 'abc\ndef\nghi' | awk '{printf $0" "}'
abc def ghi hissorii@MBA:~$
タグ:awk
posted by ひっそりぃ at 23:01| Comment(5) | TrackBack(0) | linux | このブログの読者になる | 更新情報をチェックする

2011年04月04日

subversionのリポジトリを一つ前のリビジョンに戻す

subversionのリポジトリに新しいディレクトリツリーをimportしたのだが、ディレクトリ操作を間違えてしまった。

src/hoge/{ファイルがいっぱい} の用にimportしたかったのだが、
ついsrc/{ファイルがいっぱい} としてしまい、src/以下がファイルだらけでとんでもないことになってしまった。

むむむ。ということで間違ってimportしてしまった状態を元に戻すことを考える。

今svnリポジトリのリビジョンは60になっている。これを一つ前のリビジョン59に戻すことで間違えてしまった操作を取り消してみよう。

ちなみに我が家のsvnリポジトリは玄箱上のDebian GNU/Linuxにある。
玄箱にログインし、リポジトリを確認する。今回のリポジトリは/var/lib/svnである。


$ ls -ld /var/lib/svn
drwxrwx--- 7 www-data www-data 4096 Apr 4 01:17 /var/lib/svn/


次にsvnadmin dumpコマンドでリポジトリをバックアップする。
この時、-rオプションを用いてリビジョンの1から59までを指定してバックアップするのがミソ。


$ sudo svnadmin dump /var/lib/svn -r 1:59 > hoge.dump
* Dumped revision 1.
(途中省略)
* Dumped revision 59.
$


念のため、今あるリポジトリの名前を変更しバックアップしておく。


$ sudo mv /var/lib/svn /var/lib/svn-old


新しいリポジトリを作成し、先ほどバックアップしたリビジョン1から59までのダンプを書き戻す。


$ sudo svnadmin create /var/lib/svn
$ sudo svnadmin load /var/lib/svn < hoge.dump


我が家のsvnリポジトリはownerがwww-data:www-dataなのでディレクトリ以下すべて変更しておく。


$ ls -ld /var/lib/svn
drwxr-xr-x 6 root root 4096 Apr 4 01:57 /var/lib/svn/
$ sudo chown -R www-data:www-data /var/lib/svn
$ ls -ld /var/lib/svn
drwxr-xr-x 6 www-data www-data 4096 Apr 4 01:57 /var/lib/svn/


これで一つ前のリビジョンに戻りました。めでたしめでたし。
posted by ひっそりぃ at 02:16| Comment(0) | TrackBack(0) | linux | このブログの読者になる | 更新情報をチェックする

2009年08月28日

subversion覚書

ほとんど自分用メモ。
subversionのリポジトリがhttp://192.168.1251/svn/にある場合。

■subversionのリポジトリに新たなプロジェクトを登録する

既に http://192.168.1.251/svn/src がある状態で、src以下に新しいディレクトリhogeを作成し、さらにその下にお約束のtrunk, branches, tagsを作成する場合。--parentsはmkdir -pと同じ意味で、2階層以上の新規ディレクトリを掘る場合に必要。
-mの中はログメッセージであり何でもよいが、つけない場合はUbuntu 9.04の場合エディタが開くのでそこで記述する。


hissorii@ubuntu:~/tmp$ svn mkdir --parents http://192.168.1.251/svn/src/hoge/{trunk,branches,tags} -m 'test dir'

リビジョン 40 をコミットしました。
hissorii@ubuntu:~/tmp$


今いる~/tmpの下に、subversionに登録したいディレクトリuhyoがある。uhyoの下にも一つサブディレクトリsubdirがある。

hissorii@ubuntu:~/tmp$ ls -R uhyo/
uhyo/:
subdir test.c

uhyo/subdir:
test.txt
hissorii@ubuntu:~/tmp$


このuhyoディレクトリ以下をリポジトリ上のsrc/hoge/trunkにimportする。


hissorii@ubuntu:~/tmp$ svn import uhyo http://192.168.1.251/svn/src/hoge/trunk/ -m 'first import'
追加しています uhyo/test.c
追加しています uhyo/subdir
追加しています uhyo/subdir/test.txt

リビジョン 41 をコミットしました。
hissorii@ubuntu:~/tmp$


ディレクトリuhyo自体は、リポジトリには登録されない。

hissorii@ubuntu:~/tmp$ svn list http://192.168.1.251/svn/src/hoge
branches/
tags/
trunk/
hissorii@ubuntu:~/tmp$ svn list -R http://192.168.1.251/svn/src/hoge/trunk
subdir/
subdir/test.txt
test.c
hissorii@ubuntu:~/tmp$


この状態で、あらためてcheckoutして編集して、commitして、を行う。

ざくっと、src/hoge以下を消す場合は、

hissorii@ubuntu:~/tmp$ svn delete http://192.168.1.251/svn/src/hoge -m 'hoge'

リビジョン 42 をコミットしました。
hissorii@ubuntu:~/tmp$

タグ:Linux subversion
posted by ひっそりぃ at 10:43| Comment(0) | TrackBack(0) | linux | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。