Skip to content

Getting started with CmisSync development

nicolas-raoul edited this page Mar 22, 2013 · 35 revisions

Common steps for all platforms

  1. Install Git
  2. Fork https://github.com/nicolas-raoul/CmisSync
  3. Git clone to your local computer.

If you don't like Git, you can also download the source code as a ZIP file here.

On Windows

  1. Install Microsoft Visual C# (Express version is free)
  2. Open Microsoft Visual C#
  3. Import SparkleShare/Windows/SparkleShare.sln
  4. Debug > Start debugging

On Linux

(Some installation bugs remain, volunteers wanted!)

  1. Install as described here: https://github.com/nicolas-raoul/CmisSync/blob/master/SparkleShare/Linux/README.md
  2. Run: sparkleshare start

Importing to Monodevelop

  1. Install Monodevelop
  2. Import SparkleShare/Linux/SparkleShare.sln
  3. Debugging does not seem to work out-of-the-box, but debugging from Monodevelop is possible using this trick.

On Mac

(Some installation bugs remain, volunteers wanted!)

  1. Install as described here: https://github.com/nicolas-raoul/CmisSync/blob/master/SparkleShare/Mac/README.md
  2. Run: sparkleshare start

Source code explanation

The synchronization algorithm is in CmisSync.Lib/Sync.
CmisSync uses an SQLite database to cache checksums, server-side modification dates, etc, in Database.cs.
The source code contains a lot of comments so it should be explicit. Please let us know if something is lacking.
The UI is based on SparkleShare, an excellent Git-synchronization tool. That explains why you might find references to SparkleShare in the source code.

Debugging

See the "Troubleshooting" section of this page, and Internals.

To make the log appear in Visual Studio, add a TraceAppender (and matching appender-ref) to your <log4net> configuration in config.xml. For instance:

  <log4net>
    <appender name="CmisSyncFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="C:\Users\<<<INSERT YOUR USER HERE>>>\AppData\Roaming\cmissync\debug_log.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="5MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%d [%t] %-5p %c %m%n"/>
      </layout>
    </appender>
    <root>
      <level value="ALL" />
      <appender-ref ref="CmisSyncFileAppender" />
      <appender-ref ref="TraceAppender"/>
    </root>
  </log4net>
Clone this wiki locally