////////////////////////////////////////////////////////////////

        static public void Synchronize(SynchronizationTarget target)
        {
            Stopwatch watch = new Stopwatch();

            watch.Start();

            lock (synchronization_lock) {
                Logger.Log.Debug("Synchronizing... (target={0})", target);

                DirectoryInfo source_directory, target_directory;
                source_directory = new DirectoryInfo((target == SynchronizationTarget.Local) ? remote_index_dir : local_index_dir);
                target_directory = new DirectoryInfo((target == SynchronizationTarget.Local) ? local_index_dir : remote_index_dir);

                if (SynchronizeDirectory(source_directory, target_directory))
                {
                    Logger.Log.Debug("Synchronized successfully in {0}", watch);
                }
            }
        }
		////////////////////////////////////////////////////////////////

		static public void Synchronize (SynchronizationTarget target)
		{
			Stopwatch watch = new Stopwatch ();
			watch.Start ();

			lock (synchronization_lock) {
				Logger.Log.Debug ("Synchronizing... (target={0})", target);

				DirectoryInfo source_directory, target_directory;
				source_directory = new DirectoryInfo ((target == SynchronizationTarget.Local) ? remote_index_dir : local_index_dir);
				target_directory = new DirectoryInfo ((target == SynchronizationTarget.Local) ? local_index_dir : remote_index_dir);
				
				if (SynchronizeDirectory (source_directory, target_directory))
					Logger.Log.Debug ("Synchronized successfully in {0}", watch);
			}
		}