← Back to team overview

syncany-team team mailing list archive

Re: Windows Port

 

Hey Stefan,

That's great!! This is going faster than expected :-)

Cheers,
Philipp

On Thu, Jun 2, 2011 at 10:20 AM, Stefan Mai <iamnafets@xxxxxxxxx> wrote:
> Committed another patch, this time there is one thing to note:
> 1) File.renameTo behaves differently on Linux and Windows. On Linux if the
> destination file exists, it will be overwritten. On Windows the rename is
> silently discarded if the destination name already exists. To fix this, I've
> started to check to see if destination.exists() beforehand and deleting it.
> I haven't changed this for all plugins though.
> Managed to get a local and Amazon S3 backend working, awesome!! On to more
> shell enhancements.
> Thanks,
> Stefan
> On Tue, May 31, 2011 at 12:50 AM, Stefan Mai <iamnafets@xxxxxxxxx> wrote:
>>
>> Ok, sorry about this but I accidentally committed to the mainline branch
>> (new to Bzr). From now on you'll see my changes at
>> lp:~ubuntu-iamnafets/syncany/windows. Still a lot to work out, but making a
>> solid start.
>>
>> On Mon, May 30, 2011 at 10:01 PM, Stefan Mai <iamnafets@xxxxxxxxx> wrote:
>>>
>>> I've made some progress which I'll be committing (though I'd suggest you
>>> avoid installing it unless you are privy to removing the com registration as
>>> it will create obnoxious icons on every file at the moment. I'm going to
>>> move forward to utilize TortoiseOverlays.dll which should prevent us from
>>> having collisions with people using Tortoise{SVN,BZR,Git,etc} as Windows
>>> currently only supports a small number (12?) of icon overlays and will take
>>> advantage of all the compatibility code they've written for Vista, XP, and
>>> Windows 7.
>>>
>>> On Sun, May 29, 2011 at 9:50 PM, Stefan Mai <iamnafets@xxxxxxxxx> wrote:
>>>>
>>>> I've started, but it's mainly me getting familiar with the API's and COM
>>>> programming in general. Tomorrow (Monday) is a holiday in the US and I'm
>>>> looking forward to getting some good work time in (I've had visitors this
>>>> weekend). I'll be posting my progress to my branch and will make periodic
>>>> announcements.
>>>>
>>>> Thanks,
>>>> Stefan
>>>>
>>>> On Sun, May 29, 2011 at 12:11 PM, Philipp Heckel
>>>> <philipp.heckel@xxxxxxxxx> wrote:
>>>>>
>>>>> Hey Stefan,
>>>>>
>>>>> How is the Windows Explorer Integration coming? Did you make any
>>>>> progress?
>>>>>
>>>>> Cheers,
>>>>> Philipp
>>>>>
>>>>> On Fri, May 27, 2011 at 1:16 PM, Philipp Heckel
>>>>> <philipp.heckel@xxxxxxxxx> wrote:
>>>>> > Hey everyone,
>>>>> >
>>>>> > I already sent his information to Stefan yesterday, but I think it
>>>>> > might be interesting for other potential Mac and Windows version
>>>>> > makers:
>>>>> >
>>>>> > ----------- snip ----------
>>>>> > The core thing that's missing for the Windows version is the
>>>>> > integration in the Windows Explorer -- so the little blue and green
>>>>> > icons that indicate that something is going on in the background. On
>>>>> > Linux, I could just use the GPL'd Dropbox extension for the linux
>>>>> > file
>>>>> > manager Nautilus, -- on Windows, this extension has to be coded from
>>>>> > scratch.
>>>>> >
>>>>> > The Windows Explorer extension must be written in C or C++ I think.
>>>>> > Well there is an API for it, and I have really no idea how to do it,
>>>>> > because I have no idea how to write proper code in C ...
>>>>> >
>>>>> > Here are a little more details (in case you're interested):
>>>>> >
>>>>> > The basic communication between Windows explorer and Syncany should
>>>>> > be
>>>>> > like this:
>>>>> > WinExplorer "Plugin"/"Handler" <----------TCP Socket--------->
>>>>> > Syncany Server
>>>>> >
>>>>> > ^^ This is how the Linux version works, and how the Windows/Mac
>>>>> > version should therefore also work.
>>>>> >
>>>>> > For that to work, you have to:
>>>>> > 1) add a couple of registry keys (= for each overlay icon one key, i.
>>>>> > one for "Up-to-date", one for "Syncing" and one for "conflict")
>>>>> > 2) implement three Explorer API methods: GetOverlayHandler,
>>>>> > GetPriority und IsMemberOf (see [1] for details)
>>>>> >
>>>>> > IsMemberOf checks for every file that is displayed in the Explorer,
>>>>> > whether or not this file displays a certain overlay icon, i.e it
>>>>> > checks
>>>>> > 1) whether file X is member of the group "Up-to-date"
>>>>> > 2) whether file X is member of the group "Syncing"
>>>>> > 3) and so on ...
>>>>> >
>>>>> > As you can see this is quite inefficient, but that's how Microsoft
>>>>> > does it...
>>>>> >
>>>>> > Here is the MSDN entry of Microsoft:
>>>>> > [1]
>>>>> > http://msdn.microsoft.com/en-us/library/cc144123%28v=vs.85%29.aspx
>>>>> >
>>>>> > And here is a complete implementation of TortoiseSVN:
>>>>> >
>>>>> > http://codesearch.google.com/codesearch/p?hl=en#XJa9F1p-bAg/trunk/src/TortoiseShell/IconOverlay.cpp&q=IShellIconOverlayIdentifier%20tortoise%20ismemberof&sa=N&cd=2&ct=rc
>>>>> >
>>>>> > A sample communication between the Syncany server and the Explorer
>>>>> > plugin would look like this:
>>>>> > CLIENT > get_emblems
>>>>> > CLIENT > path <tab> C:\Users\username\Syncany-Folder\
>>>>> > File12.jpg
>>>>> > CLIENT > done
>>>>> > SERVER < ok
>>>>> > SERVER < emblems <tab> syncing
>>>>> > SERVER < done
>>>>> >
>>>>> > Find attached a small PHP script that demonstrates how the
>>>>> > communication works (on linux -- but i guess the windows version
>>>>> > works
>>>>> > similarly)
>>>>> > ----------- snip ----------
>>>>> >
>>>>> > Cheers,
>>>>> > Philipp
>>>>> >
>>>>> >
>>>>> > On Fri, May 27, 2011 at 9:00 AM, Stefan Mai <ubuntu@xxxxxxxxxxxxx>
>>>>> > wrote:
>>>>> >> All,
>>>>> >> I'm working on a Windows port of Syncany, starting with the shell
>>>>> >> extension
>>>>> >> then moving on to other parts of the code. If anyone is interested
>>>>> >> in
>>>>> >> helping or has some free cycles for the effort, let me know.
>>>>> >> Thanks,
>>>>> >> Stefan
>>>>> >> --
>>>>> >> Mailing list: https://launchpad.net/~syncany-team
>>>>> >> Post to     : syncany-team@xxxxxxxxxxxxxxxxxxx
>>>>> >> Unsubscribe : https://launchpad.net/~syncany-team
>>>>> >> More help   : https://help.launchpad.net/ListHelp
>>>>> >>
>>>>> >>
>>>>> >
>>>>
>>>>
>>>>
>>>> --
>>>> Thanks,
>>>> Stefan Mai (stefan.mai@xxxxxxxxxxxxx)
>>>
>>>
>>>
>>> --
>>> Thanks,
>>> Stefan Mai (stefan.mai@xxxxxxxxxxxxx)
>>
>>
>>
>> --
>> Thanks,
>> Stefan Mai (stefan.mai@xxxxxxxxxxxxx)
>
>
>
> --
> Thanks,
> Stefan Mai (stefan.mai@xxxxxxxxxxxxx)
>


References