fix(transation): fix ignores on force
This commit is contained in:
parent
e1a8457409
commit
8865f53ce4
4 changed files with 23 additions and 5 deletions
12
src/list.sh
12
src/list.sh
|
|
@ -29,6 +29,10 @@ local_full_list() {
|
|||
find . -mindepth 1 ! -regex "^./$syncdir\$" ! -regex "^./$syncdir/.*" | sed 's|^./||g' | grep -vE "$ignores" | sort
|
||||
}
|
||||
|
||||
local_file_list() {
|
||||
find . -mindepth 1 ! -type d ! -regex "^./$syncdir\$" ! -regex "^./$syncdir/.*" | sed 's|^./||g' | grep -vE "$ignores" | sort
|
||||
}
|
||||
|
||||
server_full_list() {
|
||||
ssh_exec '#LXSH_PARSE_MINIFY
|
||||
set -e
|
||||
|
|
@ -37,6 +41,14 @@ server_full_list() {
|
|||
' "$rdir" "$syncdir" "$ignores" | sort
|
||||
}
|
||||
|
||||
server_file_list() {
|
||||
ssh_exec '#LXSH_PARSE_MINIFY
|
||||
set -e
|
||||
cd "$1"
|
||||
find . -mindepth 1 ! -type d ! -regex "^./$2\$" ! -regex "^./$2/.*" | sed "s|^./||g" | grep -vE "$3"
|
||||
' "$rdir" "$syncdir" "$ignores" | sort
|
||||
}
|
||||
|
||||
server_both_list() {
|
||||
ssh_exec '#LXSH_PARSE_MINIFY
|
||||
set -e
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
set -e
|
||||
|
||||
[ "$DEBUG" = true ] && set -x
|
||||
|
||||
%include config.sh options.sh *.sh
|
||||
|
||||
arg=$1
|
||||
|
|
|
|||
|
|
@ -27,9 +27,11 @@ sync()
|
|||
|
||||
local_full_list > "$tdir/local_full"
|
||||
local_hash_list > "$tdir/local_hash"
|
||||
server_both_list | tee >(
|
||||
head -z -n1 | tr -d '\0' | sort > "$tdir/server_full"
|
||||
) | tail -z -n1 | sort > "$tdir/server_hash"
|
||||
server_hash_list > "$tdir/server_hash"
|
||||
server_full_list > "$tdir/server_full"
|
||||
#server_both_list | tee >(
|
||||
# head -z -n1 | tr -d '\0' | sort > "$tdir/server_full"
|
||||
#) | tail -z -n1 | sort > "$tdir/server_hash"
|
||||
|
||||
# get changed on both sides
|
||||
local_newer=$( list_diff "$tdir/local_hash" "$@") || { rm -rf "$tdir" ; unlock_all ; return 1; }
|
||||
|
|
|
|||
|
|
@ -70,10 +70,11 @@ delete_local() {
|
|||
forcepull()
|
||||
{
|
||||
local ret=0
|
||||
get_ignores
|
||||
get_server || return $?
|
||||
init_local || return $?
|
||||
init_server || { unlock_local ; return $?; }
|
||||
rsync $rsync_opts -r --delete -e ssh "$raddr:$rdir" "$(pwd)/." || ret=$?
|
||||
server_file_list | rsync $rsync_opts --files-from=- --delete -e ssh "$raddr:$rdir" "$PWD/." || ret=$?
|
||||
unlock_all
|
||||
write_lists
|
||||
return $ret
|
||||
|
|
@ -82,10 +83,11 @@ forcepull()
|
|||
forcepush()
|
||||
{
|
||||
local ret=0
|
||||
get_ignores
|
||||
get_server || return $?
|
||||
init_local || return $?
|
||||
init_server || { unlock_local ; return $?; }
|
||||
rsync $rsync_opts -r --delete -e ssh "$(pwd)/." "$raddr:$rdir" || ret=$?
|
||||
local_file_list | rsync $rsync_opts --files-from=- --delete -e ssh "$PWD/." "$raddr:$rdir" || ret=$?
|
||||
unlock_all
|
||||
write_lists
|
||||
return $ret
|
||||
|
|
|
|||
Loading…
Reference in a new issue