Commit Graph

12 Commits

Author SHA1 Message Date
Petr Baudis
b1edc53d06 Introduce Git.pm (v4)
This patch introduces a very basic and barebone Git.pm module
with a sketch of how the generic interface would look like;
most functions are missing, but this should give some good base.
I will continue expanding it.

Most desirable now is more careful error reporting, generic_in() for feeding
input to Git commands and the repository() constructor doing some poking
with git-rev-parse to get the git directory and subdirectory prefix.
Those three are basically the prerequisities for converting git-mv.
I will send them as follow-ups to this patch.

Currently Git.pm just wraps up exec()s of Git commands, but even that
is not trivial to get right and various Git perl scripts do it in
various inconsistent ways. In addition to Git.pm, there is now also
Git.xs which provides barebone Git.xs for directly interfacing with
libgit.a, and as an example providing the hash_object() function using
libgit.

This adds the Git module, integrates it to the build system and as
an example converts the git-fmt-merge-msg.perl script to it (the result
is not very impressive since its advantage is not quite apparent in this
one, but I just picked up the simplest Git user around).

Compared to v3, only very minor things were fixed in this patch (some
whitespaces, a missing export, tiny bug in git-fmt-merge-msg.perl);
at first I wanted to post them as a separate patch but since this
is still only in pu, I decided that it will be cleaner to just resend
the patch.

My current working state is available all the time at

	http://pasky.or.cz/~xpasky/git-perl/Git.pm

and an irregularily updated API documentation is at

	http://pasky.or.cz/~xpasky/git-perl/Git.html

Many thanks to Jakub Narebski, Junio and others for their feedback.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-02 17:14:40 -07:00
Eric Wong
687b8be8bb fetch,parse-remote,fmt-merge-msg: refs/remotes/* support
We can now easily fetch and merge things from heads in the
refs/remotes/ hierarchy in remote repositories.

The refs/remotes/ hierarchy is likely to become the standard for
tracking foreign SCMs, as well as the location of Pull: targets
for tracking remote branches in newly cloned repositories.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-10 22:31:20 -08:00
Linus Torvalds
bbe60241ae git-fmt-merge-msg cleanup
Since I've started using the "merge.summary" flag in my repo, my merge
messages look nicer, but I dislike how I get notifications of merges
within merges.

So I'd suggest this trivial change..

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-08 18:27:15 -08:00
Alex Riesen
a92c73eccc PATCH: simplify calls to git programs in git-fmt-merge-msg
It also makes it work on ActiveState Perl.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-23 03:49:09 -08:00
Junio C Hamano
6b98579bab Merge branch 'jc/perl'
* jc/perl:
  cvsimport: avoid open "-|" list form for Perl 5.6
  svnimport: avoid open "-|" list form for Perl 5.6
  send-email: avoid open "-|" list form for Perl 5.6
  rerere: avoid open "-|" list form for Perl 5.6
  fmt-merge-msg: avoid open "-|" list form for Perl 5.6
2006-02-21 22:51:21 -08:00
Junio C Hamano
d37a1ed7f2 Fix fmt-merge-msg counting.
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-20 19:26:21 -08:00
Junio C Hamano
2a86ec46da fmt-merge-msg: avoid open "-|" list form for Perl 5.6
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-20 14:21:10 -08:00
Junio C Hamano
a15f43312f fmt-merge-msg: do not add excess newline at the end.
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-19 21:14:56 -08:00
Junio C Hamano
2b020455f9 fmt-merge-msg: say which branch things were merged into unless 'master'
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-18 22:37:02 -08:00
Junio C Hamano
1cb303872a fmt-merge-msg: show summary of what is merged.
In addition to the branch names, populate the log message with
one-line description from actual commits that are being merged.

This was prompted by Len's 12-way octopus.  You need to have
'merge.summary' in the configuration file to enable it:

	$ git repo-config merge.summary yes

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-06 21:52:08 -08:00
Junio C Hamano
05dd8e2ee2 Fix default pull not to do an unintended Octopus.
The refspecs specified in the .git/remotes/<remote> on the "Pull: "
lines are for fetching multiple heads in one go, but most of the time
making an Octopus out of them is not what is wanted.  Make git-fetch
leave the marker in .git/FETCH_HEAD file so that later stages can
tell which heads are for merging and which are not.

Tom Prince made me realize how stupid the original behaviour was.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-28 16:22:00 -07:00
Junio C Hamano
c8b48ba476 Prettyprint octopus merge message.
Including the current branch in the list of heads being merged
was not a good idea, so drop it.  And shorten the message by
grouping branches and tags together to form a single line.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-22 18:09:07 -07:00