rbsync 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +37 -0
- data/VERSION +1 -1
- data/lib/rbsync.rb +11 -9
- data/rbsync.gemspec +1 -1
- metadata +3 -3
data/README.rdoc
CHANGED
@@ -1,6 +1,43 @@
|
|
1
1
|
= rbsync
|
2
2
|
|
3
3
|
rbsync is sync files utility
|
4
|
+
== usage
|
5
|
+
=== mirror files
|
6
|
+
�������Ɠ�������ɂ���
|
7
|
+
require 'rbsync'
|
8
|
+
rsync =RbSync.new
|
9
|
+
rsync.sync( "src", "dest" )
|
10
|
+
=== mirror updated only files
|
11
|
+
������ɁA�������Ɠ����̃t�@�C������������A�X�V�����ׂ�B�V�������m�������R�s�[����D
|
12
|
+
require 'rbsync'
|
13
|
+
rsync =RbSync.new
|
14
|
+
rsync.sync( "src", "dest",{:update=>true} )
|
15
|
+
=== using exclude pattern
|
16
|
+
������Ɠ��������ɂ���C�A���A*.rb / *.log �̊g���q�͏��O����D
|
17
|
+
require 'rbsync'
|
18
|
+
rsync =RbSync.new
|
19
|
+
rsync.sync( "src", "dest",{:excludes=>["*.log","*.bak"]} )
|
20
|
+
==special usage , sync by file cotetets
|
21
|
+
if directory has a same file with different file name. insted of filename , sync file by file hash
|
22
|
+
�f�B���N�g�����̃t�@�C��������������ς��Ă��܂����Ƃ��Ɏg���D�t�@�C�����łȂ��A�t�@�C���̒��g���r���ē�������D
|
23
|
+
require 'rbsync'
|
24
|
+
rsync =RbSync.new
|
25
|
+
rsync.sync( "src", "dest",{:check_hash=>true} )
|
26
|
+
=== directory has very large file ,such as mpeg video
|
27
|
+
checking only head of 1024*1024 bytes to distinguish src / dest files.this is for speed up.
|
28
|
+
FileUtils::cmp is reading whole file. large file will take time.With :hash_limit_size Rbsync read only head of files for comparing.
|
29
|
+
����ȃt�@�C�����ƁC�S���ǂݍ��ނ̂Ɏ��Ԃ��|����̂ŁA�擪1024*1024 �o�C�g���r����OK�Ƃ���.�ʐ^�Ƃ��̓R���ŏ\��
|
30
|
+
require 'rbsync'
|
31
|
+
rsync =RbSync.new
|
32
|
+
rsync.sync( "src", "dest",{:check_hash=>true,:hash_limit_size=1024*1024} )
|
33
|
+
|
34
|
+
=== sync both updated files
|
35
|
+
�o�����ɓ������������ꍇ�͂Q��N������D
|
36
|
+
require 'rbsync'
|
37
|
+
rsync =RbSync.new
|
38
|
+
rsync.updated_file_only = true
|
39
|
+
rsync.sync( "src", "dest" )
|
40
|
+
rsync.sync( "dest", "src" )
|
4
41
|
|
5
42
|
== Contributing to rbsync
|
6
43
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/lib/rbsync.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
1
3
|
#rbsyncの改良版。
|
2
4
|
# ファイル名でなくハッシュ値を計算してファイルを同期する。
|
3
5
|
#ファイルの同期
|
4
6
|
|
5
7
|
require 'fileutils'
|
6
|
-
$KCODE='u'
|
7
8
|
|
8
9
|
# Synchronize files src to dest .
|
9
10
|
# this class can sync files and recuresively
|
@@ -35,9 +36,9 @@ $KCODE='u'
|
|
35
36
|
# rsync =RbSync.new
|
36
37
|
# rsync.sync( "src", "dest",{:check_hash=>true} )
|
37
38
|
# === directory has very large file ,such as mpeg video
|
38
|
-
# checking only head of 1024*1024 bytes to distinguish src / dest files for speed up.
|
39
|
-
# FileUtils::cmp is reading whole file.
|
40
|
-
# 巨大なファイルだと,全部読み込むのに時間が掛かるので、先頭1024*1024 バイトを比較してOK
|
39
|
+
# checking only head of 1024*1024 bytes to distinguish src / dest files.this is for speed up.
|
40
|
+
# FileUtils::cmp is reading whole file. large file will take time.With :hash_limit_size Rbsync read only head of files for comparing.
|
41
|
+
# 巨大なファイルだと,全部読み込むのに時間が掛かるので、先頭1024*1024 バイトを比較してOKとする.写真とかはコレで十分
|
41
42
|
# require 'rbsync'
|
42
43
|
# rsync =RbSync.new
|
43
44
|
# rsync.sync( "src", "dest",{:check_hash=>true,:hash_limit_size=1024*1024} )
|
@@ -46,7 +47,7 @@ $KCODE='u'
|
|
46
47
|
# 双方向に同期させたい場合は2回起動する.
|
47
48
|
# require 'rbsync'
|
48
49
|
# rsync =RbSync.new
|
49
|
-
# rsync.
|
50
|
+
# rsync.updated_file_only = true
|
50
51
|
# rsync.sync( "src", "dest" )
|
51
52
|
# rsync.sync( "dest", "src" )
|
52
53
|
class RbSync
|
@@ -172,7 +173,7 @@ class RbSync
|
|
172
173
|
# ・ディレクトリ内のファイル一覧を作る
|
173
174
|
# ・ファイル一覧を比較する
|
174
175
|
# ・同期するファイル一覧を作って転送する
|
175
|
-
def
|
176
|
+
def sync_normally(src,dest,options={})
|
176
177
|
files = self.find_files(src,dest,options)
|
177
178
|
puts "同期対象のファイルはありません" if self.debug? && files.size==0
|
178
179
|
return true if files.size == 0
|
@@ -197,15 +198,16 @@ class RbSync
|
|
197
198
|
end
|
198
199
|
def sync(src,dest,options={})
|
199
200
|
options[:excludes] = (self.excludes + [options[:excludes]]).flatten.uniq if options[:excludes]
|
200
|
-
options[:update] = @conf[:update]
|
201
|
+
options[:update] = @conf[:update] if options[:update] == nil
|
201
202
|
options[:check_hash] = options[:check_hash] and @conf[:check_hash]
|
202
|
-
options[:hash_limit_size] = @conf[:hash_limit_size]
|
203
|
+
options[:hash_limit_size] = @conf[:hash_limit_size] if options[:hash_limit_size] == nil
|
203
204
|
if options[:check_hash]
|
204
205
|
return self.sync_by_hash(src,dest,options)
|
205
206
|
else
|
206
|
-
return self.
|
207
|
+
return self.sync_normally(src,dest,options)
|
207
208
|
end
|
208
209
|
end
|
210
|
+
|
209
211
|
#for setting
|
210
212
|
|
211
213
|
def debug_mode?
|
data/rbsync.gemspec
CHANGED
metadata
CHANGED