Presentation
This application has been written in Python using the wonderful
wxPython libraries.
You can use it to compare a local directory (and the
sub-directories) with a remote directory. It's useful to synchronize
of your most important directories on a server (or USB drive) with
your local directories. All in one simple click.
An another very useful situation is when more than one people can
modify some files. With this tool, you can always get the last
versions on your local directory and Synchronize
your local directories with the server.
You can check more than one directory in one process.
The program prompt the user, to be sure that he want to
synchronize those directories ( and sub-directories).
The user can refuse to synchronize some specific files or a whole
sub-directory.
DirsSync allows you to select which type of files must not be
synchronized. For example you can say that
all .zip files must no be synchronized any more. This selection is
specific for each directory.
Since version 1.3 the system can compare the files by :
-
modification time : last updated will be kept.
- size : bigger
will be kept.
Other algorithms can easily be implemented. Post your request
here.
Released under the GPL.
Download
As pre-requisites, you need to have Python and wxPython, you can
get all of those very good software at :
www.python.org
www.wxpython.org
If you take the win32 exe, those pre-requisites are not
necessary.
You can get the last version of DirsSync
Your feedbacks are welcome in our mailing
list.
Change Log
DirsSync 2.1-rc2
This release corrects several bug fixes, includes several enhancements requested by some of testers
In this release you have the possibility to synchronize an FTP server.
This means that now, you can imagine all kind of combinaison between Directory, Zip file and FTP server.
I've still put it as a "Release Candidate" because lot of tests must still be foreseen.
Concerning FTP, not all FTP servers will work because not all are following the standard specifications (RFC 959).
For your info I'm using the following ftp commands: cwd, nlst, size, mdtm, retr, stor and dele.
All FTP echange are done in binary mode.
I recommand to use MD5 check with FTP server.
To summarize, the constraints are:
- delete a file is not supported in a Zip repositary.
- updating the modification time is not supported in a FTP repositary.
To verify if you ftp server will work, you can do:
- type: "telnet <your.ftpserver.address> 25"
- type: "user <your ftp user>"
- type: "pass <your password>"
- type: "help"
You should see all supported commands. Verify that all the one required by DirsSync are present.
DirsSync 2.1-rc1
As you remark, this release goes directly to 2.1.
I've
done it, because so many differences: < COLOR="#dc2300">95%
of dirssync.py (engine) has been rewritten!!!!
For
higher flexibility I've changed completely the way dirssync
internally manage files.
The impact on flexibility is already given:
All combinations are possible; and for
each combinations the 3 comparisons
methods (Date, Size, MD5) are available.
This non dependency of the Jobcards and
the comparison method allows higher flexibility too. Indeed, before
synchronizing files, you can perform
several comparison to better build view on what must be
synchronized.
Long list of bugs has been fixed.
Better error management and follow up:
On the transfer panel you see the
result of the synchronization
(OK, skipped or error text)
On the Log panel, you have an
error window and an info window. On big synchronization,
it's easier to find problems.
You can get it here
To
use it, simply unzip/untar it, change to the directory
dirssync-2.1-rc1 and execute: python run.py
Tests
results are VERY welcome. As soon as we are confortable with the code, a
standalone .exe will be done for windows platforms. Several people are
waiting it since long time.
In advance, thanks for your cooperation.
WARNING: to synchronize a directory with an already
created ZIP file, put the directory in 'include dir':
Let's take
a sample.
On local I have a directory: /tmp/test/data
On
remote I have a ZIP file: /tmp/test/data.zip
The Jobcard must
be:
Local: Dir:/tmp/test, include dir: data
Remote: Dir:
/tmp/test/data.zip
We must do that, because (like often) the ZIP file has been
created by 'right clicking' on 'data' directory and selecting
'create zip file'.
DirsSync 2.0-rc3
Thanks to Roger B. Dannenberg several bugs has been identified.
This Release Candidate fix them.
I'll be happy to get your
comments/issues concerning this new ReleaseCandidate.
You can
get it here
To
use it, simply unzip/untar it, change to the directory
dirssync-2.0-rc3 and
execute: python run.py
Don't
forget, I'm using the "glob" module of Python.
Documentation is here.
Each pattern must be separated by a comma.
DirsSync 2.0-rc2
I've made several bug fixes and implement the "New
menu".
Thanks for those who have sent me some feedback on
dirssync-2.0-rc1.
I'll be happy to get your comments/issues
concerning this new ReleaseCandidate.
You can get it here
To
use it, simply unzip/untar it, change to the directory
dirssync-2.0-rc2 and
execute: python run.py
Because
people have asked me about the patterns, I'm using the "glob"
module of Python. Documentation is here.
Each pattern must be separated by a comma.
DirsSync 2.0-rc1
After 4 years of good services, I've decided to fully rewrite
DirsSync. Mainly because of difficulties to add some new
functionalities. You can get it on the Sourceforge download page
here.
To start it : python run.py
Split has been made between
DirsSync Engine (can be imported in other python programs) and
GUI.
GUI was build via wxGlade
Help
is request to "fork" the CVS tree. If some one can guide
me; I'm not CVS specialist.
Thanks to send feedbacks/use
source forge bugs tracking.
In any case specify clearly that you
talk about DirsSync2 or DirsSync.
DirsSync will continue (for
bug fixes) in parallel until DirsSync2 becomes stable enough.
DirsSync 1.3
After tests and bug fixes, we release the version 1.3
DirsSync 1.3 RC3
Small bug fixes. Thanks to Mark and Chris.
DirsSync 1.3 RC2
Thanks to Valerio, DirsSync is now internationalized
in Italian and French.
New File comparison engine that can easily
be modified.
DirsSync 1.3 (Beta)
Thanks to Mark Carter for his wonderful contribution to DirsSync.
He has clean-up the source code and implement several RFE.
Thanks
to Mark, this version will propose the "One-Way"
synchronization and the "Deletion".
DirsSync 1.2
DirsSync 1.2 is in preparation.
A new methodology is putting
in place to have more comparison possibilities. In the same time,
this comparison will be simplified; this will allow developer to
easily code a new comparison algorithm. Thanks to Mark Carter for
his very valuable inputs.
This version will have a "Force to
remote" or "Force to local" mechanism (with or
without delete).
You can get beta version from the CVS tree.
DirsSync 1.1
Filtering functionality added : By creating a ".dirsync"
file in the directory you inform DirsSync to not synchronize
some file(s). You must specify one file per line, and you
must avoid empty lines.
For example this files can be
:
.dirsync
*.zip
*.*~
Folder1
As
you can see, you can use the "wild char", and you can
specify a complete sub-directory.
If the content of the remote
and the content of the local file have different sub-directory that
you don't want to modify, it's necessary to avoid to synchronize
the file ".dirsync".
A Win32 exe has been made for
lazy people ;-)
Those who don't want to install Python and
wxPython.
DirsSync 1.0
Since the application is used since so many time without any
problems reported, I've decided to rename the version 0.3 into the
version 1.0.
DirsSync-0.3
Small bug fixes : validity check on inputs
DirsSync-0.2
The modification concern essentially the layout of the windows.
The LayoutConstraint has been added. By this way, you can rise
the window, the different list will be adapted automatically.
DirsSync-0.1
After using this tools since many months, I've decided to put
this version of DirsSync available for everybody.
Nothing to add.
Documentation
1) On the input panel, you must enter the directories that you
want synchronize (those must be
mounted).
By default, the comparison
will be done based on the last modification time. But on the
"Options" tab you have the possibility to use other
comparison criteria.
2) click to "add job". Add as many directory you want.
You can synchronize more than 1 directory with one click.
3) click on "Next >>" button.
4) The program will switch automatically on the "log"
panel, to show you what is doing.
5) When the check is finished, you are automatically switch to
the "List to transfer" panel. There you will see all the
differences between the directories.
By default, the column "transfer"
is always set to "yes". You can change that by double
clicking on the specific file that you don't want to transfer.
If you don't want to synchronize a
complete sub-directory, change is "transfer" state into
"no" by double-clicking on it.
6) Click on "SYNCHRONISE" button. The program will
switch automatically to the "log" panel showing you what's
doing.
7) Since version 1.1 you have the possibility to exclude files by
listing them into a ".dirsync" file in local and/or remote
directory. The file must contain one file or directory per line, and
the "wild char" can be used. BUT Avoid empty lines.
Developers
If you want to give me feedback, remarks, send bugs, send bugs
fix, be register as a developer, please visit my sourceforge
page.
The current development staff is :
Vincent : Initiator and
translator for French
Mark : developer and tester
Valerio : developer (I18N),
translator for Italian
Sara : creator of the Logo
Chris : tester