[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

RE: Re: Git

From: Frank <Frank.li_at_freescale.com>
Date: Sun, 3 Mar 2013 19:05:20 -0800 (PST)

> Hello,
>
> What would be the approach to add Git to TSVN?
>
> Would the UI be dynamically adjusted to the repository type (i. e. if .svn
> => show Subversion commands; if .git => show Git commands)
>
> Or would we have a single UI which would be used both for Svn and Git?
>
>
> TortoiseGit faced two main problems:
>
> 1. Interfacing with Git. At the beginning it as all CreateProcess + parsing
> output, then the implemented some operations themselves, and later moved to
> libgit2 (which has been official for years already, BTW, and Git 2.x is
> expected to be based on libgit2)

TortoiseGit already move to libgit2 step by step.
Now, all git config ready/write already use libgit2. Some basic funtion, like gethash already use libgit2.

>
> 2. TGit being based on TSVN, mapping the TSVN UI to the Git concepts and
> commands was hard and caused some inconsistencies and unexpected behavior
> (including changes of behavior from version to version). E. g. the "revert"
> command, see TGit ticket 634 "TortoiseGit rever != git revert"
>
> Also, what don't you like in the TGit UI? (it departs little from the TSVN
> UI)
>
>
> What I'd like to see is TSVN becoming VCS-agnostic and moving the
> VCS-specific parts to plugins, i. e. a single code base for the shared
> functionality, then plugins for Svn, Git, Hg, etc.
>
> So far, every Tortoise* seems to have 4 parts:
>
> A. Overlays: everybody is using the overlays from TSVN
> B. Some "core" parts from TSVN, which are essentially the same for all the
> Tortoises, with slight variations
> C. Some parts which could be shared but instead they have been forked
> D. Some parts which are specific to the version control system and cannot
> be shared
>
> (A) is mostly stolen from the TSVN repository

Not stolen. It is reused. That's open source project and match GPL license requirement.

> (B) is the same, although it requires some thinking and manual work for
> merging into the Tortoise* du jour
> (C) is where the work should be going initially: some thinking and
> collaboration from other Tortoises is required
> (D) should be transformed in plugins in the future, rather than hard-coded
> parts
>
> The UI would then be dynamically created depending on what kind of
> repository a directory contains.
>
>
>
> On Sat, Feb 9, 2013 at 10:46 PM, Stefan K√ľng <tortoisesvn at gmail dot com> wrote:
>
> > Hi,
> >
> > Not sure how to start, but I'd like to discuss an idea:
> > I've been trying out Git on and off ever since it became available. At
> > first it wasn't even a serious option on Windows, but of course it
> > improved. Implementing Git in TSVN was always an option for me, but the
> > official API was (and still is) completely unusable. Only the
> > non-official libgit2 library seemed like a real option, even though for
> > a long time it lacked the most basic features so it wasn't an option
> > either.
> > But now as you might have heard, Microsoft is using libgit2 as well for
> > Visual Studio - and when I checked out libgit2 again it's now actually
> > usable. And frigging small! It's only about 600kbytes big and can do
> > almost everything that's necessary - compare that to the megs required
> > for basic SVN and you can see the size difference really is astonishing :)
> >
> > For tests, I've implemented the clone command with libgit2 in TSVN and
> > it works quite well.
> >
> > But before I go any further, I think we need to first discuss a few
> > things here:
> >
> > * should we even add Git support to TSVN?
> > Or should we concentrate on SVN alone?
> > * there's already TortoiseGit, so what about that?
> > Note: while I've installed TGit on my machine, I never really liked
> > it's UI - it's IMHO too complicated
> > * if you look at the TGit source you'll see that a *lot* of its code
> > was taken from TSVN - so if we add Git support ourselves it won't
> > add a lot to the size of TSVN.
> >
> > If we add Git support: make no mistake, this will take a long time to
> > get it to a usable state. While I got the clone command working withing
> > a few hours and most commands will take not much more time, there are a
> > lot of commands to implement and even more UI implementations and
> > decisions to make.
> >
> > Please respond with your thoughs....
> >
> > Stefan
> >
> > --
> > ___
> > oo // \\ "De Chelonian Mobile"
> > (_,\/ \_/ \ TortoiseSVN
> > \ \_/_\_/> The coolest interface to (Sub)version control
> > /_/ \_\ http://tortoisesvn.net
> >
> > ------------------------------------------------------
> >
> > http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=3048238
> >
> > To unsubscribe from this discussion, e-mail: [
> > dev-unsubscribe at tortoisesvn dot tigris dot org].
> >
>
>
>
> --
> Pau Garcia i Quiles
> http://www.elpauer.org
> (Due to my workload, I may need 10 days to answer)

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=3050228

To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2013-03-04 05:06:52 CET

This is an archived mail posted to the TortoiseSVN Dev mailing list.