This is an old revision of the document!
@echo off set LOCAL_REPO="%USERPROFILE%\Documents" set REMOTE_REPO="h:\Documents" set SSH_REPO="ssh://%USERNAME%@sfs/Documents" set PATH=C:\Progra~1\Mercurial;C:\Windows\System32\OpenSSH; If exist "%LOCAL_REPO%\.hg" ( If exist "%REMOTE_REPO%\.hg" ( goto Remoteandlocal ) else ( goto onlylocal ) ) else If exist "%REMOTE_REPO%\.hg" ( goto onlyremote ) else If exist "%LOCAL_REPO%\.hg" ( goto onlylocal ) else ( goto missingonboth ) goto end :Remoteandlocal Echo File exist remote and local c: cd %LOCAL_REPO% hg addremove hg --config ui.username=%USERNAME% commit -m "update from %COMPUTERNAME%" hg pull %REMOTE_REPO% hg merge -t "W:\scripts\merge.bat" hg resolve -t internal:other --all hg update hg addremove hg --config ui.username=%USERNAME% commit -m "merge update from %COMPUTERNAME%" hg push %REMOTE_REPO% h: cd %REMOTE_REPO% hg --config ui.username=%USERNAME% commit -m "merge update from %COMPUTERNAME%" hg merge -t "W:\scripts\merge_other.bat" hg resolve -t internal:local --all hg update hg addremove hg --config ui.username=%USERNAME% commit -m "merge update from %COMPUTERNAME%" c: cd %LOCAL_REPO% hg pull %REMOTE_REPO% hg update goto END :onlylocal Echo File exist only local mkdir %REMOTE_REPO% H: cd %REMOTE_REPO% hg init c: cd %LOCAL_REPO% hg addremove hg --config ui.username=%USERNAME% commit -m "update from %COMPUTERNAME%" hg push %REMOTE_REPO% H: cd %REMOTE_REPO% hg addremove hg --config ui.username=%USERNAME% commit -m "remote update from %COMPUTERNAME%" hg merge -t "W:\scripts\merge.bat" hg resolve -t internal:other --all hg update hg addremove hg --config ui.username=%USERNAME% commit -m "remote merge update from %COMPUTERNAME%" c: cd %LOCAL_REPO% hg pull %REMOTE_REPO% hg merge -t "W:\scripts\merge_other.bat" hg resolve -t internal:local --all hg update hg addremove hg --config ui.username=%USERNAME% commit -m "merge update from %COMPUTERNAME%" hg push %REMOTE_REPO% h: cd %REMOTE_REPO% hg update goto END :onlyremote Echo File exist only remote c: cd %LOCAL_REPO% hg init hg pull %REMOTE_REPO% hg addremove hg --config ui.username=%USERNAME% commit -m "update from %COMPUTERNAME%" hg merge -t "W:\scripts\merge.bat" hg resolve -t internal:other --all hg update hg addremove hg --config ui.username=%USERNAME% commit -m "merge update from %COMPUTERNAME%" hg push %REMOTE_REPO% h: cd %REMOTE_REPO% hg update goto END :missingonboth Echo missing on both mkdir %LOCAL_REPO% C: cd %LOCAL_REPO% hg init mkdir %REMOTE_REPO% H: cd %REMOTE_REPO% hg init c: cd %LOCAL_REPO% hg addremove hg --config ui.username=%USERNAME% commit -m "update from %COMPUTERNAME%" hg push %REMOTE_REPO% H: cd %REMOTE_REPO% hg addremove hg --config ui.username=%USERNAME% commit -m "remote update from %COMPUTERNAME%" hg merge -t "W:\scripts\merge.bat" hg resolve -t internal:other --all hg update hg addremove hg --config ui.username=%USERNAME% commit -m "remote merge update from %COMPUTERNAME%" c: cd %LOCAL_REPO% hg pull %REMOTE_REPO% hg merge -t "W:\scripts\merge_other.bat" hg resolve -t internal:local --all hg update hg addremove hg --config ui.username=%USERNAME% commit -m "merge update from %COMPUTERNAME%" hg push %REMOTE_REPO% h: cd %REMOTE_REPO% hg update goto END :END echo done
@echo off set LOCAL_REPO="%USERPROFILE%\Documents" set REMOTE_REPO="h:\Documents" set PATH=C:\Progra~1\Mercurial;C:\Windows\System32\OpenSSH; If exist "%LOCAL_REPO%\.hg" ( If exist "%REMOTE_REPO%\.hg" ( goto Remoteandlocal ) else ( goto onlylocal ) ) else If exist "%REMOTE_REPO%\.hg" ( goto onlyremote ) else If exist "%LOCAL_REPO%\.hg" ( goto onlylocal ) else ( goto missingonboth ) :Remoteandlocal Echo File exist remote and local c: cd %LOCAL_REPO% hg addremove hg --config ui.username=%USERNAME% commit -m "update from %COMPUTERNAME%" hg pull %REMOTE_REPO% hg merge -t "W:\scripts\merge_other.bat" hg resolve -t internal:local --all hg update hg addremove hg --config ui.username=%USERNAME% commit -m "merge update from %COMPUTERNAME%" hg push %REMOTE_REPO% h: cd %REMOTE_REPO% hg --config ui.username=%USERNAME% commit -m "merge update from %COMPUTERNAME%" hg merge -t "W:\scripts\merge.bat" hg resolve -t internal:other --all hg update hg addremove hg --config ui.username=%USERNAME% commit -m "merge update from %COMPUTERNAME%" c: cd %LOCAL_REPO% hg pull %REMOTE_REPO% hg update goto END :onlylocal Echo File exist only local mkdir %REMOTE_REPO% H: cd %REMOTE_REPO% hg init c: cd %LOCAL_REPO% hg addremove hg --config ui.username=%USERNAME% commit -m "update from %COMPUTERNAME%" hg push %REMOTE_REPO% H: cd %REMOTE_REPO% hg addremove hg --config ui.username=%USERNAME% commit -m "remote update from %COMPUTERNAME%" hg merge -t "W:\scripts\merge.bat" hg resolve -t internal:other --all hg update hg addremove hg --config ui.username=%USERNAME% commit -m "remote merge update from %COMPUTERNAME%" c: cd %LOCAL_REPO% hg pull %REMOTE_REPO% hg merge -t "W:\scripts\merge_other.bat" hg resolve -t internal:local --all hg update hg addremove hg --config ui.username=%USERNAME% commit -m "merge update from %COMPUTERNAME%" hg push %REMOTE_REPO% h: cd %REMOTE_REPO% hg update goto END :onlyremote Echo File exist only remote c: cd %LOCAL_REPO% hg init hg pull %REMOTE_REPO% hg addremove hg --config ui.username=%USERNAME% commit -m "update from %COMPUTERNAME%" hg merge -t "W:\scripts\merge_other.bat" hg resolve -t internal:local --all hg update hg addremove hg --config ui.username=%USERNAME% commit -m "merge update from %COMPUTERNAME%" hg push %REMOTE_REPO% h: cd %REMOTE_REPO% hg update goto END :missingonboth Echo missing on both mkdir %LOCAL_REPO% C: cd %LOCAL_REPO% hg init mkdir %REMOTE_REPO% H: cd %REMOTE_REPO% hg init c: cd %LOCAL_REPO% hg addremove hg --config ui.username=%USERNAME% commit -m "update from %COMPUTERNAME%" hg push %REMOTE_REPO% H: cd %REMOTE_REPO% hg addremove hg --config ui.username=%USERNAME% commit -m "remote update from %COMPUTERNAME%" hg merge -t "W:\scripts\merge.bat" hg resolve -t internal:other --all hg update hg addremove hg --config ui.username=%USERNAME% commit -m "remote merge update from %COMPUTERNAME%" c: cd %LOCAL_REPO% hg pull %REMOTE_REPO% hg merge -t "W:\scripts\merge_other.bat" hg resolve -t internal:local --all hg update hg addremove hg --config ui.username=%USERNAME% commit -m "merge update from %COMPUTERNAME%" hg push %REMOTE_REPO% h: cd %REMOTE_REPO% hg update goto END :END echo done