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

Re: Git

From: Pau Garcia i Quiles <pgquiles_at_elpauer.org>
Date: Sat, 9 Feb 2013 23:22:51 +0100

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)

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
(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.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.tigris.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=3048239
To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2013-02-10 08:44:23 CET

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.