git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Imran M Yousuf" <imyousuf@gmail.com>
To: "Shawn O. Pearce" <spearce@spearce.org>
Cc: "Robin Rosenberg" <robin.rosenberg@dewire.com>,
	git@vger.kernel.org, "Dave Watson" <dwatson@mimvista.com>
Subject: Re: [jgit] index v2 pull request
Date: Tue, 11 Mar 2008 08:24:24 +0600	[thread overview]
Message-ID: <7bfdc29a0803101924r41a6e221w3d560114fd61a90a@mail.gmail.com> (raw)
In-Reply-To: <20080311003526.GM8410@spearce.org>

On Tue, Mar 11, 2008 at 6:35 AM, Shawn O. Pearce <spearce@spearce.org> wrote:
> Imran M Yousuf <imyousuf@gmail.com> wrote:
>  > I would like to volunteer to work in JGit;
>  > can someone let me know where I can pick some tasks to implement?
>
>  One of the areas that I think is really weak in JGit and that we
>  need to do a _good_ fetch/push implementation is the branch model.
>
>  For example, if you look at Repository.getBranches() it returns
>  to the caller a Collection<String>.
>
>  But in Git a branch is a heck of a lot more data, and that data is
>  relevant to the end user when we are talking about fetch and merge.
>  There are many configuration options stored in .git/config for a
>  branch, and these are (today) created by git-branch and git-checkout
>  automatically as the user creates and deletes branches.
>
>  JGit has none of this model.  It thinks all that a branch is is a
>  String.  Sad.
>
>  Another thing that bothers me is the packed refs cache.  We toss
>  away the peeled information (the "^" lines), but that data is very
>  useful when you are talking about fetch as well as a few other
>  types of operations, like plotting tag labels onto a history graph
>  (such as how gitk does it).
>
>  The Ref class was started as a means of wrapping up the various
>  important bits of data about a ref (of which branches are a subclass
>  and annotated tags with peeled data is another) but I suspect it
>  didn't quite do everything so these string APIs got created.
>
>  The above is a farily small task, one that any good OO programmer
>  should be able to tackle, but it can be challenging if you are
>  new to Git plumbing as you'll have to learn what are the important
>  parts of a branch/ref/annotated tag.
>
>  As a starting point look at the config file format in C Git and
>  see what is possible in a "branch" and "remote" section; that
>  data needs to be pretty readily available for any Ref, if such
>  data exists.  The backward mapping of Ref->Remote (which does
>  not exist yet, unless Robin created it) is quite relevant for
>  tracking branches.

I will have a look at them and will give you and update; if I have any
questions, I hope you and team wont mind :).

>
>  --
>  Shawn.
>



-- 
Imran M Yousuf
Entrepreneur & Software Engineer
Smart IT Engineering
Dhaka, Bangladesh
Email: imran@smartitengineering.com
Mobile: +880-1711402557

  reply	other threads:[~2008-03-11  2:25 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-08  2:50 [jgit] index v2 pull request Shawn O. Pearce
2008-03-08  9:08 ` Jakub Narebski
2008-03-09  0:51   ` Shawn O. Pearce
2008-03-09 23:51 ` Robin Rosenberg
2008-03-10  7:32   ` Imran M Yousuf
2008-03-10 21:53     ` Robin Rosenberg
2008-03-12  2:52       ` Imran M Yousuf
2008-03-12  7:07         ` Robin Rosenberg
2008-03-12  7:52           ` Shawn O. Pearce
2008-03-12  8:19           ` Imran M Yousuf
2008-03-11  0:35     ` Shawn O. Pearce
2008-03-11  2:24       ` Imran M Yousuf [this message]
2008-03-10 23:31   ` Shawn O. Pearce

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7bfdc29a0803101924r41a6e221w3d560114fd61a90a@mail.gmail.com \
    --to=imyousuf@gmail.com \
    --cc=dwatson@mimvista.com \
    --cc=git@vger.kernel.org \
    --cc=robin.rosenberg@dewire.com \
    --cc=spearce@spearce.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).