| From | Subject | Date |
|---|---|---|
| Robert Anderson | Re: An alternate model for preparing partial commits
Possibly a succinct way of moving this conversation forward is to say that:
What is desired is a workflow where partial commits can be tested,
when it is desirable not to change history.
There are good reasons for desiring a workflow that does not routinely
change history as part of the usual workflow. Maybe there are clones
of your repo. Maybe as part of your workflow discipline you do not
want HEAD states that cannot be pushed to public, because you don't
want to manually keep track ...
| Jun 27, 3:55 pm 2008 |
| Junio C Hamano | Re: An alternate model for preparing partial commits
Surely you can arrange that. You keep track of what you pushed out, and
you refrain from rebasing beyond that point.
And fast-forward check in the push to the public will notice if you break
that "workflow discipline" by accident.
--
| Jun 27, 4:14 pm 2008 |
| Junio C Hamano | Re: [PATCH] cmd_reset: don't trash uncommitted changes u ...
I am still not convinced it is the best place but I guess it would be
--
| Jun 27, 3:11 pm 2008 |
| Marek Zawirski | [EGIT PATCH 22/23] Add new handy constructors to Transpo ...
Constructor takes additionally URI argument, to add prefix: uri + ": "
before real message. Now we don't have to remember about ugly (uri + ":
") prefix in each thrown message;
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../spearce/jgit/errors/PackProtocolException.java | 30 +++++++++++++++++++
.../spearce/jgit/errors/TransportException.java | 31 ++++++++++++++++++++
2 files changed, 61 insertions(+), 0 deletions(-)
diff --git ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 17/23] Test cases for PushProcess
Tests for push process with highly differentiated remote update cases,
that are possible in practice.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../spearce/jgit/transport/PushProcessTest.java | 407 ++++++++++++++++++++
1 files changed, 407 insertions(+), 0 deletions(-)
create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/transport/PushProcessTest.java
diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/transport/PushProcessTest.java ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 23/23] Use new TransportException constructors
Modify existing TransportException constructor calls to new ones with
URI as argument.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../spearce/jgit/transport/BasePackConnection.java | 6 +++---
.../jgit/transport/BasePackPushConnection.java | 12 ++++++------
.../org/spearce/jgit/transport/PushProcess.java | 6 +++---
.../spearce/jgit/transport/TransportGitAnon.java | 15 +++++++--------
.../spearce/jgit/transport/TransportGitSsh.java | 18 ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 21/23] Don't accept RefSpec with null source ...
RefSpec with null source has no sense, so let's inform about it.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../org/spearce/jgit/transport/FetchProcess.java | 4 ++++
.../src/org/spearce/jgit/transport/Transport.java | 5 +++--
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/FetchProcess.java b/org.spearce.jgit/src/org/spearce/jgit/transport/FetchProcess.java
index c765c12..f9c2266 100644
--- ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 18/23] Test cases for RefSpec to RemoteRefUp ...
Tests for method Transport#findRemoteRefUpdatesFor().
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../org/spearce/jgit/transport/TransportTest.java | 181 ++++++++++++++++++++
1 files changed, 181 insertions(+), 0 deletions(-)
create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/transport/TransportTest.java
diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/transport/TransportTest.java ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 19/23] Repository search for command line tools
Introducing some simple search for git repository in parent directories
of current directory.
Previous version was annoying: we had to be in directory that contains
.git/ or specify it explicitly by --git-dir.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../src/org/spearce/jgit/pgm/Main.java | 24 +++++++++++++++++--
1 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/org.spearce.jgit/src/org/spearce/jgit/pgm/Main.java ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 20/23] Push command line utility
pgm.Push class providing command line push utility, similar to C Git
one.
Some shared abbreviating methods for both Fetch and Push are moved to
TextBuiltin.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../src/org/spearce/jgit/pgm/Fetch.java | 36 +---
.../src/org/spearce/jgit/pgm/Push.java | 235 ++++++++++++++++++++
.../src/org/spearce/jgit/pgm/TextBuiltin.java | 21 ++
3 files changed, 262 insertions(+), 30 deletions(-)
create mode ...
| Jun 27, 3:06 pm 2008 |
| Junio C Hamano | git@vger.kernel.org
[jc: trying to resend this message I sent late last night, because vger
did not seem to have relayed it to the list for some unknown reason.]
Some people noticed that they have trouble going to remote site over ssh
transport using 'next' version of git.
A brief git transport primer may be helpful to understand what is going
on. When you run "git fetch" (and remember, "git pull" runs it before it
runs "git merge") against a remote over ssh transport, it asks the other
side to run ...
| Jun 27, 3:08 pm 2008 |
| Lea Wiemann | Re: Adding a 'version' command to the server
I meant "now that the current git won't work with *some* older servers
*without adding an option*". Or did I misunderstand you?
-- Lea
--
| Jun 27, 4:19 pm 2008 |
| Junio C Hamano | Re: Adding a 'version' command to the server
Whoa, Wait. Who said that?
--
| Jun 27, 4:15 pm 2008 |
| Junio C Hamano | Re: git@vger.kernel.org
Sorry, while trying to fudge the headers and messages to avoid triggering
vger's spam filter, I managed to mangle the subject of that message. It
should have read:
Subject: Glitches connecting to existing remote using 'next' git
--
| Jun 27, 3:14 pm 2008 |
| Lea Wiemann | Adding a 'version' command to the server (was: git@vger. ...
Now that the current git won't work with older servers anyway, what
about using this opportunity to add a 'version' command to the server?
With such a command, such problems would seem to be quite easily
avoidable in the future, since the client can discriminate based on the
server's version.
I'm not sure how to implement this (the problems seem to be that (a) it
needs to work with git-shell and real shells, and (b) that older clients
must not be supplied with a version number in order ...
| Jun 27, 4:07 pm 2008 |
| Marek Zawirski | [EGIT PATCH 14/23] Clarify Repository#resolve() documentation
Say explicitly that this method returns null when revstr can't be
resolved.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../src/org/spearce/jgit/lib/Repository.java | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java b/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
index 64f93ff..2b43b2c 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
+++ ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 16/23] Transport* - general support for push ...
Implementation of push() at abstract Transport class level and
implementations of concrete protocols: SSH, local, git-daemon.
Some Transport* implementations required refactoring to share code
between pack and fetch connections.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../src/org/spearce/jgit/transport/Transport.java | 184 +++++++++++++++++++-
.../spearce/jgit/transport/TransportBundle.java | 6 +
.../spearce/jgit/transport/TransportGitAnon.java | 39 ++++
...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 15/23] Add String versions of methods in RefSpec
matchDestination(), matchSource(), expandFromSourec() can take String
as parameter now, not only Ref (we just need a ref name).
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../src/org/spearce/jgit/transport/RefSpec.java | 46 +++++++++++++++++--
1 files changed, 41 insertions(+), 5 deletions(-)
diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/RefSpec.java b/org.spearce.jgit/src/org/spearce/jgit/transport/RefSpec.java
index 38489be..1589e19 100644
--- ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 13/23] Add PushProcess class implementing gi ...
This class perform analogous operations as FetchProcess. It processes
refs advertised by connection, updates RemoteRefUpdates and
local tracking branches - TrackingRefUpdates.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../org/spearce/jgit/transport/PushProcess.java | 224 ++++++++++++++++++++
1 files changed, 224 insertions(+), 0 deletions(-)
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/transport/PushProcess.java
diff --git ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 12/23] Fix: let RevWalk reset correctly befo ...
Retained flags was wrongly computed for reset() call inside
isMergedInto().
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../src/org/spearce/jgit/revwalk/RevWalk.java | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevWalk.java b/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevWalk.java
index fc757a5..7976d75 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevWalk.java
+++ ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 11/23] Add BasePackPushConnection implementi ...
Implementation realies extensively on RemoteRefUpdate as input.
It supports report-status capability, and honors delete-refs one.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../jgit/transport/BasePackPushConnection.java | 226 ++++++++++++++++++++
1 files changed, 226 insertions(+), 0 deletions(-)
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/transport/BasePackPushConnection.java
diff --git ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 10/23] Add ignoreMissingUninteresting option ...
This option is useful when caller cares only about locally existing
uninteresting objects.
Test cases created.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../tst/org/spearce/jgit/lib/PackWriterTest.java | 45 +++++++++++++++++---
.../src/org/spearce/jgit/lib/PackWriter.java | 37 +++++++++++-----
2 files changed, 65 insertions(+), 17 deletions(-)
diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackWriterTest.java ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 06/23] Refactor: extract superclass Operatio ...
New superclass holds information about advertised refs and updated
tracking refs, which is all common to fetch and push operations.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../org/spearce/jgit/transport/FetchResult.java | 74 +------------
.../spearce/jgit/transport/OperationResult.java | 119 ++++++++++++++++++++
2 files changed, 120 insertions(+), 73 deletions(-)
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/transport/OperationResult.java
diff ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 09/23] Big refactor: *Connection hierarchy
New interfaces and base classes are introduced to cope with lack of
multiple inheritance and allow code reuse between fetch and push
operations implementations. Some renames (adding Base prefix) are also
performed to distinct between interfaces and base implementations.
Some generalizations/cleanings in interfaces and implementations
(particularly in Base* classes) were introduced. readAdvertisedRefs() in
BasePackConnection now support both push and fetch advertisements.
Signed-off-by: Marek ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 08/23] Support for fetchThin and pushThin op ...
This option determines whether we should use thin pack when possible
during fetching from or pushing to a remote repo.
For fetching the default is to produce a thin pack when remote side
supports it, while for pushing the default setting is to not produce a
thin pack.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../jgit/transport/PackFetchConnection.java | 4 +-
.../src/org/spearce/jgit/transport/Transport.java | 63 ++++++++++++++++++++
2 files changed, 66 ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 07/23] Add PushResult class
Class represents result of push operation. In addition to the data
provided by OperationResult it also holds information about remote
refs updates.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../src/org/spearce/jgit/transport/PushResult.java | 84 ++++++++++++++++++++
1 files changed, 84 insertions(+), 0 deletions(-)
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/transport/PushResult.java
diff --git ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 01/23] Fix: let FetchProcess use fetch() ins ...
doFetch() call didn't check whether fetch() was already performed
(it is intended for internal use), while fetch() does.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../org/spearce/jgit/transport/FetchProcess.java | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/FetchProcess.java b/org.spearce.jgit/src/org/spearce/jgit/transport/FetchProcess.java
index afaf9e2..e33b35b 100644
--- ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 03/23] Refactor TrackingRefUpdate to not hol ...
Just remoteName is needed, not a whole RefSpec.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../spearce/jgit/transport/TrackingRefUpdate.java | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/TrackingRefUpdate.java b/org.spearce.jgit/src/org/spearce/jgit/transport/TrackingRefUpdate.java
index 56234a1..771e77a 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/transport/TrackingRefUpdate.java
+++ ...
| Jun 27, 3:06 pm 2008 |
| Robin Rosenberg | Re: [EGIT PATCH 00/23] Push implementation
This will make fine weekend reading :)
-- robin
--
| Jun 27, 4:25 pm 2008 |
| Marek Zawirski | [EGIT PATCH 04/23] New constructor without RefSpec for T ...
New constructor operates directly on RefSpec components: remote name,
local name, force flag.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../spearce/jgit/transport/TrackingRefUpdate.java | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/TrackingRefUpdate.java b/org.spearce.jgit/src/org/spearce/jgit/transport/TrackingRefUpdate.java
index 771e77a..a84b38a 100644
--- ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 05/23] Add RemoteRefUpdate class
This class holds specification and status of remote ref update during
push operation.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../spearce/jgit/transport/RemoteRefUpdate.java | 315 ++++++++++++++++++++
1 files changed, 315 insertions(+), 0 deletions(-)
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/transport/RemoteRefUpdate.java
diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/RemoteRefUpdate.java ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 00/23] Push implementation
Finally, series with push implementation. It has taken a "while" to
squash all bugs this time and polish the series, uhh.
Part of this series is signifficant refactor of .transport package to
support code reuse between fetch and push implementations + minor
fixes/improvements.
Needed push operation elements were created. Implementation provides
basis for different push protocols by common push process and its
dendendencies. Push over git-receive-pack based transports is
implemented.
Shawn ...
| Jun 27, 3:06 pm 2008 |
| Marek Zawirski | [EGIT PATCH 02/23] RefUpdate: new possible result Result ...
This result indicates that I/O error (beyond of IOException) occurred
during RefUpdate#update().
Hitherto behaviour was to just throw IOException and leave result with
value Result.NOT_ATTEMPTED. It was just less informative.
Fetch class from pgm package needed new conditions for printing. Other
classes were reviewed and should still work just fine.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
.../src/org/spearce/jgit/lib/RefUpdate.java | 27 +++++++++++++++++--
...
| Jun 27, 3:06 pm 2008 |
| Junio C Hamano | Re: [PATCH] shrink git-shell by avoiding redundant depen ...
No need to say nor be sorry. The rest looks sane from a quick glance,
except that we may want to have a separate clean-up patch that
consolidates MAXDEPTH in many places that limits our manual symlink
resolution.
--
| Jun 27, 3:34 pm 2008 |
| Dmitry Potapov | [PATCH] shrink git-shell by avoiding redundant dependencies
A lot of modules that have nothing to do with git-shell functionality
were linked in, bloating git-shell more than 8 times.
This patch cuts off redundant dependencies by:
1. providing stubs for three functions that make no sense for git-shell;
2. moving quote_path_fully from environment.c to quote.c to make the
later self sufficient;
3. moving make_absolute_path into a new separate file.
The following numbers have been received with the default optimization
settings on master using GCC ...
| Jun 27, 2:35 pm 2008 |
| Junio C Hamano | Re: [PATCH] shrink git-shell by avoiding redundant depen ...
This is not a comment you would want to move to the resulting file that
contains only make_absolute_path().
--
| Jun 27, 2:55 pm 2008 |
| Dmitry Potapov | Re: [PATCH] shrink git-shell by avoiding redundant depen ...
I am sorry... I removed this comment. Here is the corrected patch.
-- 8< --
From: Dmitry Potapov <dpotapov@gmail.com>
Date: Sat, 28 Jun 2008 00:46:42 +0400
Subject: [PATCH] shrink git-shell by avoiding redundant dependencies
A lot of modules that have nothing to do with git-shell functionality
were linked in, bloating git-shell more than 8 times.
This patch cuts off redundant dependencies by:
1. providing stubs for three functions that make no sense for git-shell;
2. moving ...
| Jun 27, 3:31 pm 2008 |
| Craig L. Ching | Make test on AIX
Hi all,
I just got through a rather painful build and install of 1.5.6.1 on AIX
and I was wondering if anyone has any clues on how to get the tests to
run a bit better there.
The first thing I encountered was that because the tests all use
#!/bin/sh the exit code was not what the tests expected. So I ended up
running 'make SHELL=`which bash` all' directly in the git/t/ directory.
That seemed to shake out and work for most of the tests except for
t/t7502-commit.sh. Try as I might, I could ...
| Jun 27, 2:13 pm 2008 |
| Raimund Bauer | found some nice git scripts
Maybe somebody else find them useful too:
http://git-wt-commit.rubyforge.org/
regards,
Ray
--
| Jun 27, 1:49 pm 2008 |
| David Jeske | Re: An alternate model for preparing partial commits
Yes, as I said, that set of operations can be performed with git today.
What git can't do, is let me "supercede" the old DAG-subset, so people I shared
them with can get my new changes without hurting their world. Currently git
seems to rely on the idea that "if you accept changes into your tree that will
be later rebased, it's up to you to figure it out". I don't see why that is the
case.
--
| Jun 27, 1:51 pm 2008 |
| Jakub Narebski | Re: An alternate model for preparing partial commits
git rebase --interactive?
Any patch management interface (StGIT, Guilt)?
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
--
| Jun 27, 1:47 pm 2008 |
| Jonathan Nieder | [RFC/PATCH] Documentation: Don't assume git-sh-setup and ...
Starting with Git 1.5.4, use of dashed forms of git commands in
scripts without "PATH=$(git --exec-path):$PATH" was deprecated. Thus
we generally advertise the non-dashed forms of commands. git-sh-setup
and git-parse-remote do not have non-dashed forms because they are
meant to be sourced from a script using .; thus the only recommended
way to use them is by updating PATH first. This patch changes the
documentation accordingly.
This does not matter as much for releases before 1.6.0, because
by ...
| Jun 27, 1:10 pm 2008 |
| Jonathan Nieder | Ramifications of a git-sh-setup outside the PATH
Hi gitsters,
I noticed in the release notes to Git 1.6.0 that dashed-form commands
are moving to a libexecdir outside the PATH. I have been using Git
with nd/dashless applied for about a month, and it does work well
(thanks!). There was one little glitch: to use hg-fast-export.sh from
fast-export.git (of repo.or.cz), I had to put git-sh-setup in the PATH.
I wanted to just change the ". git-sh-setup" line to ". git sh-setup",
but of course that will not work. Am I missing ...
| Jun 27, 12:00 pm 2008 |
| Don Zickus | [PATCH] git-apply doesn't handle same name patches well [V4]
When working with a lot of people who backport patches all day long, every
once in a while I get a patch that modifies the same file more than once
inside the same patch. git-apply either fails if the second change relies
on the first change or silently drops the first change if the second change
is independent.
The silent part is the scary scenario for us. Also this behaviour is
different from the patch-utils.
I have modified git-apply to create a table of the filenames of files ...
| Jun 27, 11:39 am 2008 |
| Robert Anderson | Re: An alternate model for preparing partial commits
On Fri, Jun 27, 2008 at 10:54 AM, Johannes Schindelin
Tongue in cheek, of course - a play on Linus' "narrow minded views"
about svn. Not much of a sense of humor, eh?
You may consider the idea that the next committed state ought to be
available for build/test to be a "narrow-minded" view. I find it to
be a manifestly sound view. In fact, if you disagree I have little
respect for your technical judgment and therefore am not concerned if
you will not talk with me. Which is too bad on both ...
| Jun 27, 11:07 am 2008 |
| Jon Loeliger | Re: can you push from a bare repository??
Go to your main repo and configure up a new remote
using "git remote add' pointing to the bare repo.
Then fetch from that remote!
jdl
--
| Jun 27, 11:18 am 2008 |
| Doug Reiland | Re: can you push from a bare repository??
Is that the only way? It wouldn't work for what I want to do.
I will have many users creating these environments and I wouldn't want
them all creating those remote branches on the main server.
--
| Jun 27, 11:41 am 2008 |
| Doug Reiland | can you push from a bare repository??
I have a main repository called main
I create a bare clone from main call bare_clone
I create clone from bare_clone called work_repository_1
I do my work in work_repository_1, commit, and push changes to bare_clone
How to a push the changes in bare_clone into main??
thanks in advance,
Doug
--
| Jun 27, 10:58 am 2008 |
| Miklos Vajna | [PATCH 13/15] Add new test case to ensure git-merge redu ...
The old shell version used show-branch --independent to filter for the
ones that cannot be reached from any other reference.
The new C version uses reduce_heads() from commit.c for this, so
add test to ensure it works as expected.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
t/t7603-merge-reduce-heads.sh | 63 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 63 insertions(+), 0 deletions(-)
create mode 100755 ...
| Jun 27, 9:22 am 2008 |
| Miklos Vajna | [PATCH 15/15] Build in merge
Mentored-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
---
This is an unrelated hunk, patch below which does not contains this.
Makefile | 2 +-
builtin-merge.c | 1143 +++++++++++++++++++++++++
builtin.h | 1 +
git-merge.sh => contrib/examples/git-merge.sh | 0
git.c | 1 +
...
| Jun 27, 10:09 am 2008 |
| Miklos Vajna | [PATCH 15/15] Build in merge
Mentored-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
---
Makefile | 2 +-
builtin-merge.c | 1143 +++++++++++++++++++++++++
builtin.h | 1 +
git-merge.sh => contrib/examples/git-merge.sh | 0
git.c | 1 +
t/t7602-merge-octopus-many.sh | 2 +-
6 files changed, ...
| Jun 27, 9:22 am 2008 |
| Miklos Vajna | [PATCH 14/15] Add new test case to ensure git-merge prep ...
There was no test for this before, so the testsuite passed, even in case
the merge summary was missing from the merge commit message.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
---
t/t7604-merge-custom-message.sh | 37 +++++++++++++++++++++++++++++++++++++
1 files changed, 37 insertions(+), 0 deletions(-)
create mode 100755 t/t7604-merge-custom-message.sh
diff --git a/t/t7604-merge-custom-message.sh b/t/t7604-merge-custom-message.sh
new file mode 100755
index ...
| Jun 27, 9:22 am 2008 |
| Miklos Vajna | [PATCH 05/15] Move read_cache_unmerged() to read-cache.c
builtin-read-tree has a read_cache_unmerged() which is useful for other
builtins, for example builtin-merge uses it as well. Move it to
read-cache.c to avoid code duplication.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
builtin-read-tree.c | 24 ------------------------
cache.h | 2 ++
read-cache.c | 31 +++++++++++++++++++++++++++++++
3 files changed, 33 insertions(+), 24 deletions(-)
diff --git ...
| Jun 27, 9:21 am 2008 |
| Miklos Vajna | [PATCH 06/15] git-fmt-merge-msg: make it usable from oth ...
Move all functionality (except config and option parsing) from
cmd_fmt_merge_msg() to fmt_merge_msg(), so that other builtins can use
it without a child process.
All functions have been changed to use strbufs, and now only
cmd_fmt_merge_msg() reads directly from a file / writes anything to
stdout.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
---
builtin-fmt-merge-msg.c | 155 +++++++++++++++++++++++++++--------------------
builtin.h | 3 +
2 files changed, 92 ...
| Jun 27, 9:21 am 2008 |
| Miklos Vajna | [PATCH 01/15] Move split_cmdline() to alias.c
split_cmdline() is currently used for aliases only, but later it can be
useful for other builtins as well. Move it to alias.c for now,
indicating that originally it's for aliases, but we'll have it in libgit
this way.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
alias.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
cache.h | 1 +
git.c | 53 -----------------------------------------------------
3 files ...
| Jun 27, 9:21 am 2008 |
| Miklos Vajna | [PATCH 00/15] Build in merge
Hello,
Dscho gave me a detailed review on builtin-merge, so I'm sending an
updated series.
It's based on 49646c5 in git.git, so hopefully it includes all the work
Junio did recently in 'pu'. (PARSE_OPT_ARGV0_IS_AN_OPTION removal, etc.)
Changes:
* "git-fmt-merge-msg: make it usable from other builtins"
- Small cleanup.
* "Build in merge"
- When a custom message was given for a merge, the result was not
identical to the one git-merge.sh had. I added a testcase for this
and ...
| Jun 27, 9:21 am 2008 |
| Miklos Vajna | [PATCH 03/15] Move parse-options's skip_prefix() to git- ...
builtin-remote.c and parse-options.c both have a skip_prefix() function,
for the same purpose. Move parse-options's one to git-compat-util.h and
let builtin-remote use it as well.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
builtin-remote.c | 39 ++++++++++++++++++++++++++-------------
git-compat-util.h | 6 ++++++
parse-options.c | 6 ------
3 files changed, 32 insertions(+), 19 deletions(-)
diff --git ...
| Jun 27, 9:21 am 2008 |
| Miklos Vajna | [PATCH 02/15] Move commit_list_count() to commit.c
This function is useful outside builtin-merge-recursive, for example in
builtin-merge.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
builtin-merge-recursive.c | 8 --------
commit.c | 8 ++++++++
commit.h | 1 +
3 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/builtin-merge-recursive.c b/builtin-merge-recursive.c
index 43bf6aa..3731853 100644
--- ...
| Jun 27, 9:21 am 2008 |
| Miklos Vajna | [PATCH 04/15] Add new test to ensure git-merge handles p ...
Test if the given strategies are used and test the case when multiple
strategies are configured using a space separated list.
Also test if the best strategy is picked if none is specified. This is
done by adding a simple test case where recursive detects a rename, but
resolve does not, and verify that finally merge will pick up the
previous.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
---
t/t7601-merge-pull-config.sh | 129 ++++++++++++++++++++++++++++++++++++++++++
1 files ...
| Jun 27, 9:21 am 2008 |
| Miklos Vajna | [PATCH 08/15] Add new test to ensure git-merge handles m ...
The old shell version handled only 25 refs but we no longer have this
limitation. Add a test to make sure this limitation will not be
introduced again in the future.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
t/t7602-merge-octopus-many.sh | 52 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 52 insertions(+), 0 deletions(-)
create mode 100755 t/t7602-merge-octopus-many.sh
diff --git ...
| Jun 27, 9:22 am 2008 |
| Miklos Vajna | [PATCH 09/15] Introduce get_merge_bases_many()
From: Junio C Hamano <gitster@pobox.com>
This introduces a new function get_merge_bases_many() which is a natural
extension of two commit merge base computation. It is given one commit
(one) and a set of other commits (twos), and computes the merge base of
one and a merge across other commits.
This is mostly useful to figure out the common ancestor when iterating
over heads during an octopus merge. When making an octopus between
commits A, B, C and D, we first merge tree of A and B, and ...
| Jun 27, 9:22 am 2008 |
| Miklos Vajna | [PATCH 12/15] strbuf_vaddf(): support %*s, too
From: Johannes Schindelin <johannes.schindelin@gmx.de>
The recent addition of graph.c broke things with our custom implementation
of strbuf_vaddf(), because "%*s" was not yet supported (because it did not
have any users before).
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
strbuf.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/strbuf.c b/strbuf.c
index 72b3585..bd5dc80 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -154,6 +154,12 @@ void ...
| Jun 27, 9:22 am 2008 |
| Miklos Vajna | [PATCH 07/15] Introduce get_octopus_merge_bases() in commit.c
This is like get_merge_bases() but it works for multiple heads, like
show-branch --merge-base.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
commit.c | 27 +++++++++++++++++++++++++++
commit.h | 1 +
2 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/commit.c b/commit.c
index bbf9c75..6052ca3 100644
--- a/commit.c
+++ b/commit.c
@@ -600,6 +600,33 @@ static struct commit_list *merge_bases(struct commit *one, ...
| Jun 27, 9:22 am 2008 |
| Miklos Vajna | [PATCH 11/15] Add strbuf_vaddf(), use it in strbuf_addf( ...
From: Johannes Schindelin <johannes.schindelin@gmx.de>
The most common use of addf() was to init a strbuf and addf() right away.
Since it is so common, it makes sense to have a function strbuf_initf() to
wrap both calls into one.
To do that, we implement a (really minimal) vaddf() lookalike to
vsprintf().
At the moment, it only handles %u, %i, %d, %l, %o, %x and %X with size
indicators '<number>', ' <number>' and '0<number>', as well as %c and %s,
the latter with size indicators '.*' in ...
| Jun 27, 9:22 am 2008 |
| Miklos Vajna | [PATCH 10/15] Introduce reduce_heads()
From: Junio C Hamano <gitster@pobox.com>
The new function reduce_heads() is given a list of commits, and removes
ones that can be reached from other commits in the list. It is useful for
reducing the commits randomly thrown at the git-merge command and remove
redundant commits that the user shouldn't have given to it.
The implementation uses the get_merge_bases_many() introduced in the
previous commit. If the merge base between one commit taken from the list
and the remaining commits is the ...
| Jun 27, 9:22 am 2008 |
| Miklos Vajna | [PATCH 08/15] Add new test to ensure git-merge handles m ...
The old shell version handled only 25 refs but we no longer have this
limitation. Add a test to make sure this limitation will not be
introduced again in the future.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
---
I just noticed this was wrong here. The tests passed because a later
commit had a hunk to fix this but this fix is unrelated there. So here
is the right version.
t/t7602-merge-octopus-many.sh | 52 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 52 ...
| Jun 27, 10:06 am 2008 |
| Santi Béjar | Re: Determining if two commits are on a separate branch
On Fri, Jun 27, 2008 at 16:55, Adr3nal D0S <adr3nald0s@gmail.com> wrote:
You can compute the merge-base of these two commits and if the base is
one of them then it is a fast-forward.
For example, in git.git:
$ git merge-base origin/next origin/master
d54467b8c319571b5dc433b1f7e471c4b0f21caf
$ git rev-parse origin/next origin/master
3e7d305293ce93d00d5e0e6371311f7caa94f497
d54467b8c319571b5dc433b1f7e471c4b0f21caf
The merge-base is origin/master so it is an ancestor of ...
| Jun 27, 8:17 am 2008 |
| Michael J Gruber | Re: Determining if two commits are on a separate branch
"Directly" as in "is child of", or as in "connected by the DAG"?
"git rev-list C..B" lists all commits which are not in C but in B. If
this list is empty then B is "contained" in C. This is how you can test
for being connected by the DAG. For the graph above, all of the
following refspecs would return an empty list, indicating connectedness:
C..B
C..A
B..A
D..B
D..A
Are those the "good ones" in your case? Then you know how to test for
the bad guys ;)
Michael
--
| Jun 27, 8:13 am 2008 |
| Adr3nal D0S | Determining if two commits are on a separate branch
We are making extensive use of submodules at work and we have created
a number of extra scripts to simplify our usage. For example, there
is git-rstatus, which recursively reports status of all submodules.
I am working on another script to check whether or not a change to any
submodules jump branches. If we have commits like this:
A--B--C
\--D
I don't care if a submodule moves from A to C or B to C, but I do care
if a commit of the super-project would cause a jump from D to C ...
| Jun 27, 7:55 am 2008 |
| Johannes Schindelin | Re: Installation Guide
Added to the Wiki.
--
| Jun 27, 7:43 am 2008 |
| Chris Hapgood | Installation Guide
FYI, I have posted a noob installation guide for Egit here: http://cho.hapgoods.com/wordpress/?p=159
Chris Hapgood
cch1@hapgoods.com
--
| Jun 27, 7:18 am 2008 |
| Robin Rosenberg | Re: Installation Guide
Added twice, to the Eclipse plugin page too.
-- robin
--
| Jun 27, 4:41 pm 2008 |
| Santi Béjar | Re: possible 'git cp'/how does git detect copies
Did you followed the "See also −−find−copies−harder."?
From the man page
--find-copies-harder::
For performance reasons, by default, `-C` option finds copies only
if the original file of the copy was modified in the same
changeset. This flag makes the command
inspect unmodified files as candidates for the source of
copy. This is a very expensive operation for large
projects, so use it with caution. Giving more than one
git blame -C -C ...
| Jun 27, 5:57 am 2008 |
| Miklos Vajna | Re: possible 'git cp'/how does git detect copies
Actually that's not that easy. git-mv moves untracked files and adds
tracked files to the index as well. So such a git-cp would have to copy
tracked and untracked files, and add tracked files to the index.
I did it in the past:
http://thread.gmane.org/gmane.comp.version-control.git/72388/focus=73347
but then we agreed about it's better not encouraging copy-and-paste.
| Jun 27, 6:09 am 2008 |
| Johannes Sixt | Re: possible 'git cp'/how does git detect copies
If you modify the original file in the same commit, then you should see
the copy. Otherwise, you can try git diff -C -C aka --find-copies-harder.
-- Hannes
--
| Jun 27, 6:05 am 2008 |
| Mircea Bardac | Re: possible 'git cp'/how does git detect copies
Hi,
I knew this from before but for some reason I forgot about it when I
tried it now. The documentation for "git diff -C" is a bit misleading. I
have originally tested on git 1.5.2.something and the documentation for
-C didn't point to --find-copies-harder. I've quickly installed 1.5.6.1
to test the behavior but not the man pages.
Looking over the online docs for 1.5.6.1, it appears that there is now a
reference to --find-copies-harder.
Even so, saying just that "Detect copies as ...
| Jun 27, 6:16 am 2008 |
| Mircea Bardac | possible 'git cp'/how does git detect copies
I was looking today at duplicating a file but, I soon realized that
there is no 'git cp' command (this was the "deductive approach to git
commands", starting from git mv/rm/...). How does "git diff -C" detect
copies (-C is used for this, according to the documentation)?
On a very simple test, I couldn't see this working. I just copied one
file, added it, committed the change, ran "git diff -C HEAD^!". There is
no place saying that it's contents is copied from some other file (both
files ...
| Jun 27, 5:40 am 2008 |
| Pierre Habouzit | Re: possible 'git cp'/how does git detect copies
By comparing if files (blobs) are alike. It has some heuristics to
guess which files have good changes to be copies or renames of each
If you really need it, you can and an alias alias.cp=3D!cp and be done
with it ;P
--=20
=C2=B7O=C2=B7 Pierre Habouzit
=C2=B7=C2=B7O madcoder@debia=
n.org
OOO http://www.madism.org
| Jun 27, 6:00 am 2008 |
| Mircea Bardac | Re: BUG (v1.5.6.1): ./configure missing check for zlib.h
Well, as far as I know, if a program depends on any external headers,
they should *all* be checked, not only "those that can be skipped by
defining some macro" (I personally do not know which are these).
Mircea
--
http://mircea.bardac.net
--
| Jun 27, 8:15 am 2008 |
| Jakub Narebski | Re: BUG (v1.5.6.1): ./configure missing check for zlib.h
In git (not like usually in other projects) ./configure script (autoconf)
is used *only* to generate Makefile configuration. It tries to configure
compile (build) process in such a way that building git is possible even
if some features are missing or are found not in standard place (and also
use compat version of functions if they are not in library). It helps you
build system.
I'm not sure if checking if prerequisites exists and failing loudly
otherwise would be a good feature to have. ...
| Jun 27, 4:03 pm 2008 |
| Jakub Narebski | Re: BUG (v1.5.6.1): ./configure missing check for zlib.h
Here ./configure check for existence of heder files, but only those
What should ./configure do (what ./configure for other programs
or packages do)?
You cannot compile git without zlib!
--
Jakub Narebski
Poland
ShadeHawk on #git
--
| Jun 27, 7:46 am 2008 |
| tom fogal | Re: BUG (v1.5.6.1): ./configure missing check for zlib.h
If one can determine during configure time that a required library is
not found, it (IMHO) is nice to give an error message and bomb out (via
AC_MSG_ERROR).
The AC macro archive has a zlib macro which does this, as an example:
http://autoconf-archive.cryp.to/check_zlib.html
I should note, however, that I disagree with that macro's logic in that
it `searches' for zlib if the user does not specify it. IMO, if the
user does not give a --with option, and it doesn't work `out of the
box' ...
| Jun 27, 8:07 am 2008 |
| Mircea Bardac | BUG (v1.5.6.1): ./configure missing check for zlib.h
$ ./configure
configure: CHECKS for programs
checking for cc... cc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ANSI C... none needed
checking for gar... no
checking for ar... ...
| Jun 27, 5:30 am 2008 |
| Michael J Gruber | git serve
Hi there
I added a small subsection to the wiki at
http://git.or.cz/gitwiki/Aliases
I hope it's OK to just go ahead and edit like I did.
I love the power of git aliases. This one shows how easy it is to
implement a "hg serve" alike "git serve".
In order to be able to use "git serve" from a subdir of the repo without
much scripting (git-rev-parse --git-dir) my alias uses the fact that
non-git aliases (beginning with "!") are executed with the top-level dir
as cwd. Is this ...
| Jun 27, 5:19 am 2008 |
| Daniel Barkalow | Re: [PATCH 2/2] clone: respect url.insteadOf setting in ...
This is how it should be.
Maybe I ought to make transport_get() take the index of the URL in the
list for the remote, instead of taking the actual URL; any use of a URL
that's not from that list is going to be oddly wrong in some way, I think.
--
| Jun 27, 9:08 am 2008 |
| Johannes Schindelin | [PATCH 2/2] clone: respect url.insteadOf setting in glob ...
When we call "git clone" with a url that has a rewrite rule in either
$HOME/.gitconfig or /etc/gitconfig, the URL can be different from
what the command line expects it to be.
So, let's use the URL as the remote structure has it, not the literal
string from the command line.
Noticed by Pieter de Bie.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
builtin-clone.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/builtin-clone.c ...
| Jun 27, 5:56 am 2008 |
| Johannes Schindelin | [PATCH 1/2] clone: respect the settings in $HOME/.gitcon ...
After initializing the config in the newly-created repository, we
need to unset GIT_CONFIG so that the global configs are read again.
Noticed by Pieter de Bie.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
On Fri, 27 Jun 2008, Pieter de Bie wrote:
> I sometimes use url.insteadOf to create a shortcut to a central
> repository. For example, having something like[*1*]
>
> [url "git://repo.or.cz/git/"]
> insteadOf = "repo:"
>
> in my global gitconfig ...
| Jun 27, 5:55 am 2008 |
| Junio C Hamano | Re: Using url.insteadOf in git-clone
What version of git is this?
v1.5.5.1 and later contains 60e3aba (Fix config key miscount in
url.*.insteadOf, 2008-04-12).
--
| Jun 27, 10:11 am 2008 |
| Pieter de Bie | Using url.insteadOf in git-clone
Hi,
I sometimes use url.insteadOf to create a shortcut to a central
repository.
For example, having something like[*1*]
[url "git://repo.or.cz/git/"]
insteadOf = "repo:"
in my global gitconfig allows me to do a 'git fetch repo:dscho.git'.
I'd also
like to use that with git clone :). Currently if I try that, I get
Vienna:~ pieter$ git clone repo:dscho.git
Initialize dscho/.git
Initialized empty Git repository in /Users/pieter/dscho/.git/
ssh: Error resolving hostname repo: ...
| Jun 27, 2:35 am 2008 |
| Daniel Barkalow | Re: [PATCH 1/2] clone: respect the settings in $HOME/.gi ...
This seems fine to me. OTOH, I'm not sure the environment variable should
be needed in the first place; I think the config stuff should look in
git_path("config") without it, and we set the git dir to the one we're
initializing. So I think the use of the environment variable is just an
artifact of how the shell script did it and how I was originally calling
the init_db stuff.
Just removing the "setenv()" line survives all of the tests for me, and I
remember some of them failing before ...
| Jun 27, 9:05 am 2008 |
| Junio C Hamano | Re: [PATCH 1/2] clone: respect the settings in $HOME/.gi ...
Ok, I take that you are Ok with 2/2 but you have a better replacement
patch coming for this 1/2?
--
| Jun 27, 3:40 pm 2008 |
| Johannes Sixt | [PATCH] git-gui: Implement "Stage/Unstage Line"
From: Johannes Sixt <johannes.sixt@telecom.at>
This adds a context menu entry below "Stage/Unstage Hunk" that stages or
unstages just the line under the mouse pointer.
This is by itself useful, for example, if there are unrelated changes in
the same hunk and the hunk cannot be split by reducing the context.
The feature can also be used to split a hunk by staging a number of
additions (or unstaging a number of removals) until there are enough
context lines that the hunk gets split.
The ...
| Jun 27, 12:22 am 2008 |
| Robert Anderson | Re: An alternate model for preparing partial commits
As I said in my original message, twice, was that the index state is
never instantiated and therefore cannot be compiled or tested.
Thanks,
Bob
--
| Jun 27, 10:02 am 2008 |
| Junio C Hamano | Re: An alternate model for preparing partial commits
I've always said that I am not in favor of any form of partial commits,
exactly for the reason Robert states, namely that you are not committing
what you had in your work tree as a whole. I said so back when the only
form of partial commits were "git commit [-o] this-file". I said it again
even when I introduced "add -i", that the interface goes backwards and
does not fix the issues associated with partial commits.
But I agree with you that calling the index half-baked is missing the
point. ...
| Jun 27, 11:15 am 2008 |
| Robert Anderson | Re: An alternate model for preparing partial commits
Hannes,
I do not have N commits. I have a modified working tree from which I
would like to create N commits. I would like to compile and test an
instantiation of each of those to-be-committed states before
committing them.
Thanks,
Bob
--
| Jun 27, 10:01 am 2008 |
| Robert Anderson | Re: An alternate model for preparing partial commits
Now I have my guess at the first commit as my tree state, correct?
What happens when I decide I need a couple of hunks from another file
which I missed in my first guess, and is now in the stashed state?
How do I get those out of the stash and into the working tree? If
there is no convenient way to do that, then this method is not
sufficient to cover the use case I am talking about.
Thanks,
Bob
--
| Jun 27, 9:54 am 2008 |
| Robert Anderson | Re: An alternate model for preparing partial commits
On Fri, Jun 27, 2008 at 6:33 AM, Johannes Schindelin
It is too subtle. That the index state - which becomes the next
committed state - is not available for building or testing before
But it is something they should want, and should have, if they care
about the quality of their commits. Especially in the common case of
a project with development lines which have some sort of policy about
build/test requirements. How do you ensure your commits obey that
policy if you cannot verify it? ...
| Jun 27, 10:14 am 2008 |
| Johannes Sixt | Re: An alternate model for preparing partial commits
I do this all the time. After I have made $N commits out of my worktree, I
usually
$ git rebase -i HEAD~$N
and turn all 'pick's into 'edit's and 'squash's. Then I can compile and
test each commit, perhaps add some fixups, in isolation.
-- Hannes
--
| Jun 27, 1:35 am 2008 |
| Johannes Schindelin | Re: An alternate model for preparing partial commits
Hi,
This is too narrow-minded a view for me.
No longer interested,
Dscho
--
| Jun 27, 10:45 am 2008 |
| Björn | Re: An alternate model for preparing partial commits
It's rather a work-around to stash away only the changes that are not in
the index. See the other reply to my mail for a patch that adds an
git stash pop
eventually fix conflicts if you changed the working tree in the meantime
go back to the "git add -p" step
Björn
--
| Jun 27, 10:27 am 2008 |
| Petr Baudis | Re: An alternate model for preparing partial commits
Hi,
I wanted to suggest using commit and commit --amend, but I realized
that frankly, I don't understand quite what are you wanting to do.
Through the process, are you preparing a sequence of two commits at
once, or merely a single commit? With s/--prep/--cached/ and throwing
git prep away completely, it's not clear to me how would what you
present be different at all from just using index - could you point out
what is actually different in your workflow compared to the prep
workflow you ...
| Jun 27, 1:50 am 2008 |
| David Jeske | Re: An alternate model for preparing partial commits
Of course developers need to be able to make bad-commits. If they can't, we
quickly end up back in the "don't checkin" mentality of CVS. I want to be able
to do bad-commits. Further, I recognize that even with the best of intentions
bad-commits will enter the mainline. What I think is missing is a mechanism for
re-summarizing a set of committs that does not rely on the fact that they've
never been published. See my other email on "supercede"..
Consider a big public tree that is using bisect, but ...
| Jun 27, 1:45 pm 2008 |
| Miklos Vajna | Re: An alternate model for preparing partial commits
On Fri, Jun 27, 2008 at 02:33:33PM +0100, Johannes Schindelin <Johannes.Sch=
If we are at it, git checkout -i is also something which may be useful,
like:
1) Do two unrelated changes in a file.
2) You realize one of them is unnecessary.
Currently what you can do is something like:
1) You stage the first hunk using git add -p
2) git commit
3) git checkout file
But this forces you to commit early, and to commit --amend later. It
would be nice to be able to completely drop a hunk ...
| Jun 27, 6:49 am 2008 |
| Dana How | Re: An alternate model for preparing partial commits
I guess I'm not interested in the over-generalizations. ;-)
But the ability to use e.g. some stash-like feature (as suggested above)
to easily make the index-state (about to be committed) fully available
for compiling/processing/testing without losing edits not yet ready
for commit is an extra feature we would use here at least some of the time.
I will admit it's currently not the "itch" at the top of my list.
Thanks,
--
Dana L. How danahow@gmail.com +1 650 804 5991 cell
--
| Jun 27, 11:20 am 2008 |
| Junio C Hamano | Re: [PATCH/RFC] stash: introduce 'stash save --keep-inde ...
Please do not describe how it does, before what it does and what it is
good for. Here is an example:
When preparing for a partial commit (iow, committing only part of
the changes you made in your work tree), you would use various
forms of "git add" to prepare the index to a shape you think is
appropriate for committing, and finally run "git commit".
This workflow however has a flaw in that you are committing
something that you could never have tested as a whole (and without
any ...
| Jun 27, 11:26 am 2008 |
| SZEDER | [PATCH/RFC] stash: introduce 'stash save --keep-index' option
'git stash save' saves local modifications to a new stash, and runs 'git
reset --hard' to revert them to a clean index and work tree. When the
'--keep-index' option is specified, after that 'git reset --hard' the
previous contents of the index is restored and the work tree is updated
to match the index. This option is useful if the user wants to commit
only parts of his local modifications, but wants to test those parts
before committing.
Also add support for the completion of the new option, ...
| Jun 27, 7:37 am 2008 |
| Robert Anderson | Re: An alternate model for preparing partial commits
What I said is that the index is a half-baked version of _what I
want_, which is the ability to do partial commits from testable
states. Clearly the index is a way to do partial commits, but it does
not address the "untested state" issue, so it is only halfway there,
Exactly. That was a good summary of the workflow I proposed in my
Bingo.
Time permitting, I will propose a more well thought through UI for
this workflow. If you like it, we can talk about how it might ...
| Jun 27, 11:43 am 2008 |
| Björn | Re: An alternate model for preparing partial commits
Hm, I use "stash" for that purpose, which leads to kind of the reverse
of your approach. So I do sth. like this:
- hack hack hack
- Notice that I want to make two commits out of what I have in my
working tree
- git add -p -- stage what I want in the first commit
- git commit -m tmp -- temporary commit
- git stash -- stash away what doesn't belong in the first commit
- git reset HEAD^ -- drop the temporary commit, with the changes kept
in the working tree
- test, fix bugs, read ...
| Jun 27, 12:10 am 2008 |
| Stephen Sinclair | Re: An alternate model for preparing partial commits
Hello,
I just thought I'd throw in my $0.02 here. There's something
fundamental I think I'm not getting about this argument: it seems to
be based on the premise that partial commits allow untested tree
states to enter the repository. However, having gotten used to the
git way of things, I personally don't see the problem with allowing
bad commits, as long as they are not pushed to public.
That is, I use the git add -p command all the time when I realize I've
just done two things that ...
| Jun 27, 1:31 pm 2008 |
| Robert Anderson | Re: An alternate model for preparing partial commits
On Fri, Jun 27, 2008 at 10:45 AM, Johannes Schindelin
Here's a patch to match the local culture: "It is incredible how
stupid the idea of the index is."
Clearly you should now be interested.
Thanks,
Bob
--
| Jun 27, 10:49 am 2008 |
| Johannes Schindelin | Re: An alternate model for preparing partial commits
Hi,
Half-baked is probably too strong a word.
What you are basically asking for is to have the working directory
as staging area, and to be able to stash away changes that are not to be
committed.
Now, this is not necessarily what everybody wants, which is why many
people are fine with the index.
Having said that, I played with the idea of a "git stash -i", which would
allow you to select the changes to stash away. (And by extension, "git
stash -e" using the "git add -e" ...
| Jun 27, 6:33 am 2008 |
| Robert Anderson | An alternate model for preparing partial commits
Seems to me the concept of the "index" is a half-baked version of what
I really want, which is the ability to factor a working tree's changes
into its constituent parts in preparation for committing them. The
index provides some very nice facilities to factor out changes in a
working tree into a "staging area", but the fundamental flaw of this
in my view is that this "staging area" is not instantiated as a tree,
so it cannot be compiled and/or tested before committing.
Consider a facility ...
| Jun 26, 11:50 pm 2008 |
| Robert Anderson | Re: An alternate model for preparing partial commits
But that pops the entire stash, right? Inconvenient at best.
A good UI here would allow you to move pieces bidirectionally to/from
the stash at will until the desired, verifiable factorization of
changes has been achieved.
Thanks,
Bob
--
| Jun 27, 10:34 am 2008 |
| David Jeske | Re: An alternate model for preparing partial commits
Robert, I'm new to git, but I understand where you are going.
Why limit it only to working tree changes? For me, the stash machinery is of no
help here, because I commit super-often. What I end up with is 30 commits in a
topic branch, but where not every point passes 100% of tests. I want to go back
through and order them properly, and decide which points are sensible as
upstream committs. (especially as I read more about bisect).
git has all the concepts I want except one. However, it makes ...
| Jun 27, 1:29 pm 2008 |
| Johannes Schindelin | Re: [PATCH] commit-tree: lift completely arbitrary limit ...
Hi,
Yes, I admitted that already in response to Hannes.
Mea culpa, mea maxima culpa.
Sorry,
Dscho
--
| Jun 27, 10:46 am 2008 |
| Johannes Sixt | Re: [PATCH] commit-tree: lift completely arbitrary limit ...
unsigned char sha1[20];
is sufficient here, /me thinks.
-- Hannes
--
| Jun 27, 6:00 am 2008 |
| Miklos Vajna | Re: octopus limit
It's in 'pu', so in case you really need it *now*, then just get git.git
and build the 'pu' branch.
| Jun 27, 6:04 am 2008 |
| Junio C Hamano | Jun 27, 10:16 am 2008 | |
| Matthieu Moy | Re: octopus limit
There's a patch around which should remove this limitation (I think
it's the builtin-ification of merge).
--
Matthieu
--
| Jun 26, 11:33 pm 2008 |
| Johannes Schindelin | Re: octopus limit
Hi,
FWIW I think the rewrite of git-merge as a builtin, which is currently in
the works, lifts the limit. However, this is only true if you do not use
a custom script which calls commit-tree.
Ciao,
Dscho
--
| Jun 27, 5:00 am 2008 |
| Johannes Schindelin | Re: [PATCH] commit-tree: lift completely arbitrary limit ...
Hi,
Ooops. Completely correct.
Junio, want me to fix it up? Or do you want me not to bother with this
patch at all?
Ciao,
Dscho
--
| Jun 27, 6:02 am 2008 |
| Johannes Schindelin | [PATCH] commit-tree: lift completely arbitrary limit of ...
There is no really good reason to have a merge with more than 16
parents, but we have a history of giving our users rope.
Combined with the fact that there was no good reason for that
arbitrary limit in the first place, here is an all-too-easy to fix.
Kind of wished-for by Len Brown.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
On Fri, 27 Jun 2008, Johannes Schindelin wrote:
> On Thu, 26 Jun 2008, Len Brown wrote:
>
> > it would be nice if a merge of ...
| Jun 27, 5:24 am 2008 |
| Len Brown | octopus limit
it would be nice if a merge of more than 16 branches failed
right at the start, rather than chunking along doing merges
and then giving up, leaving my repo in an intermediate state.
cheers,
-len
git merge test acpica bugzilla-10807-v2 bugzilla-10927 bugzilla-6217
bugzilla-9684 bugzilla-9704 bugzilla-9772 compal-laptop debug-test
dev-printk fujitsu-laptop gpe-debug misc per-cpu pnp-v3 suspend wmi-2.6.27
Already up-to-date with c4e6a2e64e948de42473e9c829181d768b1258c3
Trying simple merge ...
| Jun 26, 7:44 pm 2008 |
| Pascal Obry | Re: is rebase the same as merging every commit?
Or if you are using git-svn as nobody will ever see your local branches.
So rebasing is just the right way to go when tracking a Subversion tree
I would say.
Pascal.
--
--|------------------------------------------------------
--| Pascal Obry Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--| http://www.obry.net
--| "The best way to travel is by means of ...
| Jun 26, 11:31 pm 2008 |
| Matthieu Moy | Re: is rebase the same as merging every commit?
Well, look at the [PATCH] messages on this list, and how they evolve.
Patch series give a clean way to go from a point to another. That's
what you want to see in upstream history.
Then, patch series usually get reviewed, and the patches themselves
are modified. There's a kind of meta-history: the changes you make to
your own changes.
Suppose I send a patch containing
+ int * x = malloc(sizeof(char));
and someone notices how wrong it is. I send another patch with
+ int * x = ...
| Jun 27, 12:34 am 2008 |
| Junio C Hamano | Re: is rebase the same as merging every commit?
All correct. Sorry about the confusion.
--
| Jun 27, 2:51 pm 2008 |
| Junio C Hamano | Re: is rebase the same as merging every commit?
The last sentence came out in somewhat inappropriate way.
In the situation "rebase" (which is a way to help you pretend you
did not start building on a stale codebase) is appropriate, nobody
wants to know you did it first on E
is what I meant. More importantly, _you_ do not want anybody to know.
That is the whole reason you would rebase.
With that clarification in mind, the explanation would flow more smoothly
So you have a choice between merging and rebasing. And your extra ...
| Jun 26, 6:08 pm 2008 |
| しらいしななこ | Re: is rebase the same as merging every commit?
Sorry, but I think you are wrong, Junio.
Rebase can be used to backport changes, not just porting your changes forward, using --onto option:
..........maint
............1-------A'--B'--C'
.........../ . . . <-- ???
........../.......A---B---C
........./......./
......../......./
.......0--...--D---E---F---G - master
Here, A, B, C that are based on D (that is way ahead of the top of the maintenance branch 1) is rebased to the maintenance branch.
But in this case, A' is ...
| Jun 27, 3:33 am 2008 |
| David Jeske | Re: is rebase the same as merging every commit?
Thanks for the explanation.
However, when considering an SCM perspective, I don't understand why I have to
make a tradeoff between personal reproducibility (which I get from the original
changes), and upstream readability (which the community gets from my rebase).
I could get both of these if the rebase kept both the old and new.
Is there some reason that losing personal reproducability, and personal/local
tracking back to those changes of A-B-C is necessary as part of the ...
| Jun 26, 11:24 pm 2008 |
| David Jeske | Re: is rebase the same as merging every commit?
This example you provided Matthieu is exactly my confusion with rebase..
If I want to bring a 'broken feature-a' branch into my topic branch to build on
-----
..and then through 'fixing' the patch, it ends up rebased and accepted onto the
mainline origin/master, as a single patch, which (among other things) changed
However, in both cases, because Q' is not connected to Q, I don't see how git
will do anything sane to help me accept Q' correctly.
If I rebased my merge-q-branch ...
| Jun 27, 8:39 am 2008 |
| Junio C Hamano | Re: is rebase the same as merging every commit?
I would presume that the resulting trees A' in the second picture and in
the first picture would be the same, so are B' and C'. But that is only
true when commits between A and C do not have any duplicate with the
development that happened between E and G.
Thinking about it like that is an interesting mental exercise, but it is
You would rebase ONLY WHEN the project as the whole (either "other people
in the project", or "yourself down the road one year from now") is
interested mostly in ...
| Jun 26, 5:51 pm 2008 |
| Michael P. Soulier | git-gui fails to start
Hi,
I'm on a CentOS Linux box, tracking 4.6 with Git 1.5.5.4 built from source.=
=20
When I run gitk on a repository it works fine, but nothing happens when I r=
un
git-gui. No error messages, nothing.=20
If I set GITGUI_VERBOSE, I get this
auto_load tk_optionMenu
source /usr/share/tk8.4/optMenu.tcl
auto_load tk::MenuDup
source /usr/share/tk8.4/tearoff.tcl
auto_load ::status_bar::new
source /home/msoulier/git/share/git-gui/lib/status_bar.tcl
auto_load class
source ...
| Jun 26, 5:23 pm 2008 |
| Olivier Marin | [PATCH] show_stats(): fix stats width calculation
From: Olivier Marin <dkr@freesurf.fr>
Before this patch, name_width becomes negative or null for width values
less than 15 and name_width values greater than 25 (default: 50). This
leads to output random data.
This patch checks for minimal width and name_width values.
Signed-off-by: Olivier Marin <dkr@freesurf.fr>
---
diff.c | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/diff.c b/diff.c
index 44e8790..a85c8ca 100644
--- a/diff.c
+++ b/diff.c
@@ ...
| Jun 26, 5:18 pm 2008 |
| Olivier Marin | [PATCH] Documentation: remove {show,whatchanged}.difftre ...
From: Olivier Marin <dkr@freesurf.fr>
This removes, from the documentation and the bash completion script, the
two config options that were introduced by the git-whatchanged.sh script
and lost in the C rewrite. Today, we can use aliases as an alternative.
Signed-off-by: Olivier Marin <dkr@freesurf.fr>
---
Documentation/config.txt | 8 --------
contrib/completion/git-completion.bash | 2 --
2 files changed, 0 insertions(+), 10 deletions(-)
diff --git ...
| Jun 26, 5:17 pm 2008 |
| Matthieu Moy | Re: is rebase the same as merging every commit?
I'd draw that the other way:
...........---------A---B---C
........../ \ \ \
........./ /---A'--B'--C' topic
......../ /
Well, one could imagine a "rebase keeping ancestry" command, which
would keep A and G (indeed, you can do that by hand with multiple
calls to "merge"). The advantage being that further merges involving
both A and A' have better chance to succeed.
But philosophy of "rebase" is different: the idea is that you usually
rebase your ...
| Jun 26, 11:30 pm 2008 |
| David Jeske | Re: is rebase the same as merging every commit?
I see. So it would be reasonable for the documentation to be altered slightly
to show that the original nodes are still there, and that the primary
difference between merging those changes one-by-one and rebasing is that rebase
does not connect the new to the old. If you want to keep the old, you can toss
a branch name on it, and if not, it still lives until the gc timeout.
The current docs showing those nodes missing tells me that they disappear,
which is both scarry, and apparently ...
| Jun 26, 11:46 pm 2008 |
| Petr Baudis | Re: is rebase the same as merging every commit?
I don't think you can call it correct since it assumes !(2) while (2)
holds. Drawing the diagram this way is misleading; merging commits
one-by-one implies preserving the merge information in the history
graph; nothing like that is done by rebase.
Rebase is more like _cherry-picking_ all the patches on your branch on
top of the upstream branch. You just essentially take each patch (commit
message + diff to parent) growing on top of upstream's E and recommit it
Indeed, noone forces you into ...
| Jun 27, 1:34 am 2008 |
| Junio C Hamano | Re: [PATCH] fetch: report local storage errors in status table
Makes sense --- thanks. This is something we can have automated tests,
isn't it?
--
| Jun 27, 4:37 pm 2008 |
| Jeff King | Re: bug related to branches using / in name
And here is a 2-patch series improving the error reporting for this
case (and it also helps with some other cases). I'm a little iffy on
2/2, since we don't actually _know_ that remote pruning will help. But
propagating specific errors up through the call chain would require
reasonably major surgery.
1/2: fetch: give a hint to the user when local refs fail to update
2/2: fetch: report local storage errors in status table
-Peff
--
| Jun 26, 8:57 pm 2008 |
| Jeff King | Re: bug related to branches using / in name
So to summarize, the problem is that you have an old tracking branch
"refs/remotes/sched" that exists on the client, but upstream has since
removed it in favor of "sched/devel", which you are now trying to fetch.
And of course there is a conflict, because of the ref naming rules.
This doesn't work seamlessly because git-fetch never removes old
tracking branches, even if they have been deleted upstream. And normally
there is no conflict; leaving the old branches means they don't
disappear from ...
| Jun 26, 8:02 pm 2008 |
| Simon Holm | Re: bug related to branches using / in name
Your summary is correct, but I cannot entirely convince myself that
leaving old branches available is valid in any work flow. But what do I
Yes, and you can also hit a similar problem using git-push, but I guess
that the user is a bit more aware about what is going on in that case
and is able resolve the problem without hints.
I tested the two patches and they did indeed seem to do what you
intended them to for my test case. The solution is not exactly pretty,
but it is better than nothing and ...
| Jun 27, 1:32 am 2008 |
| Junio C Hamano | Re: bug related to branches using / in name
Hmm. Is there actually such a rule?
I was wondering if it might make more sense to do the equivalent of what
checkout_entry() does (i.e. remove_subtree()) when there is such a
conflict. After all, tracking branches are meant to accept rewinds and
anything that happens on the remote end, and having to run "git remote
prune" is not a feature but is a lack of feature in the "git fetch", which
may make it look like deletion is somewhat special.
--
| Jun 27, 4:31 pm 2008 |
| Jeff King | [PATCH 2/2] fetch: give a hint to the user when local re ...
There are basically two categories of update failures for
local refs:
1. problems outside of git, like disk full, bad
permissions, etc.
2. D/F conflicts on tracking branch ref names
In either case, there should already have been an error
message. In case '1', hopefully enough information has
already been given that the user can fix it. In the case of
'2', we can hint that the user can clean up their tracking
branch area by using 'git remote prune'.
Note that we don't actually ...
| Jun 26, 9:01 pm 2008 |
| Jeff King | [PATCH] fetch: report local storage errors in status table
Previously, if there was an error while storing a local
tracking ref, the low-level functions would report an error,
but fetch's status output wouldn't indicate any problem.
E.g., imagine you have an old "refs/remotes/origin/foo/bar" but
upstream has deleted "foo/bar" in favor of a new branch
"foo". You would get output like this:
error: there are still refs under 'refs/remotes/origin/foo'
From $url_of_repo
* [new branch] foo -> origin/foo
With this patch, the output ...
| Jun 26, 8:59 pm 2008 |
| Jeff King | Re: bug related to branches using / in name
BTW, you can get the opposite problem, too. If you have
"refs/remotes/origin/foo/bar", and then the remote removes "foo/bar" in
favor of "foo", you will have a conflict on fetch.
-Peff
--
| Jun 26, 8:04 pm 2008 |
| Christian Holtje | Re: pread() over NFS (again) [1.5.5.4]
This does work. But the "unpacking objects" phase becomes very slow.
I had 86 objects and I could see every time it did a sleep because the
counter would wait a second (or more) before the next object was
unpacked.
Ciao!
--
| Jun 27, 6:54 am 2008 |
| J. Bruce Fields | Re: pread() over NFS (again) [1.5.5.4]
Trond, you don't have any idea why a 2.6.9-42.0.8.ELsmp client (2.4.28
server) might be returning spurious 0's from pread()?
Seems like everything is happening from that one client--the file isn't
being simultaneously accessed from the server or from another client.
--b.
--
| Jun 26, 7:57 pm 2008 |
| Trond Myklebust | Re: pread() over NFS (again) [1.5.5.4]
Is the file only being read, or could there be a simultaneous write to
the same file? I'm surmising this could be an effect resulting from
simultaneous cache invalidations: prior to Linux 2.6.20 or so, we
weren't rigorously following the VFS/VM rules for page locking, and so
page cache invalidation in particular could have some curious
side-effects.
Cheers
Trond
--
Trond Myklebust
Linux NFS client maintainer
NetApp
Trond.Myklebust@netapp.com
www.netapp.com
--
| Jun 27, 7:50 am 2008 |
| J. Bruce Fields | Re: pread() over NFS (again) [1.5.5.4]
That version's for the client or the server?
--
| Jun 26, 7:54 pm 2008 |
| Christian Holtje | Re: pread() over NFS (again) [1.5.5.4]
For the bug I sent the information is:
Server:
Linux dev1 2.4.28 #3 SMP Tue Jan 18 14:59:40 EST 2005 i686 i686 i386
GNU/Linux
Red Hat Linux release 9 (Shrike)
Client:
Linux dev2 2.6.9-42.0.8.ELsmp #1 SMP Tue Jan 30 12:18:01 EST 2007
x86_64 x86_64 x86_64 GNU/Linux
CentOS release 4.4 (Final)
Ciao!
--
| Jun 27, 6:44 am 2008 |
| Avery Pennarun | Re: update-index --assume-unchanged doesn't make things ...
I'm guessing it would help somewhat (although not as much as not
checking anything at all). However, we'd still have to check the
mtime *against* something, and I don't think the index stores
information about directories themselves.
Thanks,
Avery
--
| Jun 27, 10:01 am 2008 |
| Jakub Narebski | Re: update-index --assume-unchanged doesn't make things ...
By the way, from time to time there on this mailing list is idea
to add entries for directories in the index. This could help situation
like yours, tracking emty directories, faster operations when some trees
are unchanged, subtree <-> subproject changes.
But it always comes back to: 1.) no proposed implementation, 2.) "git
tracks contents"...
--
Jakub Narebski
Poland
ShadeHawk on #git
--
| Jun 27, 10:31 am 2008 |
| Avery Pennarun | Re: update-index --assume-unchanged doesn't make things ...
Yes, that's the idea. In Win32, it would use something other than
inotify, but otherwise it should work about the same.
Avery
--
| Jun 27, 11:51 am 2008 |
| Avery Pennarun | Re: update-index --assume-unchanged doesn't make things ...
Yes, I've seen the occasional discussions about this.
I might volunteer to help solve (1) except that I have a feeling that
changing the index format would mangle all sorts of things beyond my
current understanding. Attaining that understanding might not be so
bad, except for (2), which seems like any proposed changes will
probably be rejected anyhow.
So naturally I was hoping for a magical alternative suggestion for my
current problem instead :) One option I'm thinking about is to ...
| Jun 27, 10:56 am 2008 |
| Dana How | Re: update-index --assume-unchanged doesn't make things ...
It sounds sane to me b/c I had the same reaction to this discussion.
You mean "all the files in the _worktree_" ?
You would use e.g. inotify on all the directories except .git?
This would be very helpful with an extremely large number of files.
Thanks,
--
Dana L. How danahow@gmail.com +1 650 804 5991 cell
--
| Jun 27, 11:09 am 2008 |
| Ifejinelo Onyiah | Re: Errors building git-1.5.6 from source on Mac OS X 10.4.11
I've just done that and here's the output:
io1@mib19412i[00m:~/Desktop/git-1.5.6/t$ ./t2004-checkout-cache-temp.sh -d -v -i
* expecting success:
mkdir asubdir &&
echo tree1path0 >path0 &&
echo tree1path1 >path1 &&
echo tree1path3 >path3 &&
echo tree1path4 >path4 &&
echo tree1asubdir/path5 >asubdir/path5 &&
git update-index --add path0 path1 path3 path4 asubdir/path5 &&
t1=$(git write-tree) &&
rm -f path* .merge_* out .git/index &&
echo tree2path0 >path0 &&
echo tree2path1 >path1 ...
| Jun 27, 1:43 am 2008 |
| Johannes Schindelin | [PATCH, next version] git bisect: introduce 'fixed' and ...
When you look for a fix instead of a regression, it can be quite hard
to twist your brain into choosing the correct bisect command between
'git bisect bad' and 'git bisect good'.
So introduce the commands 'git bisect fixed' and 'git bisect unfixed'.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
On Tue, 24 Jun 2008, Junio C Hamano wrote:
> Jeff King <peff@peff.net> writes:
>
> > On Tue, Jun 24, 2008 at 06:09:28PM +0100, Johannes Schindelin
> > wrote:
> ...
| Jun 27, 6:48 am 2008 |
| Junio C Hamano | Re: [PATCH, next version] git bisect: introduce 'fixed' ...
[Empty message]
| Jun 27, 4:03 pm 2008 |
| Jeff King | Re: [PATCH v2] pre-commit hook should ignore carriage re ...
Heh, I am happy that the virtual empty tree object is coming in handy
again.
From quick review, the series looks good to me (and it was, btw, very
easy to read -- I think that you, as somebody who reviews a lot of
patches, have gotten very good at splitting up your own sensibly. :) ).
-Peff
--
| Jun 26, 9:24 pm 2008 |
| John Locke | Re: git svn clone a non-standard repository
Okay. I think I've closed the loop, and have this updating successfully,
if not necessarily easily.
To update, we need a local branch for each submodule:
git checkout -b dojo dojo-trunk <- create local branch and switch to it
(only create it the first time through)
git svn rebase dojo-trunk <- do this to update each local branch from
the remote svn repository version--must have corresponding branch
checked out.
... now that we've merged the remote changes to a local branch, we can ...
| Jun 26, 6:06 pm 2008 |
| Miklos Vajna | Re: [PATCH 12/13] Build in merge
On Fri, Jun 27, 2008 at 12:56:02PM +0100, Johannes Schindelin <Johannes.Sch=
Ah yes. Changed.
Thanks.
| Jun 27, 6:01 am 2008 |
| Miklos Vajna | Re: [PATCH 12/13] Build in merge
On Fri, Jun 27, 2008 at 03:04:52PM +0200, Olivier Marin <dkr@freesurf.fr> w=
Aah. I should have noticed that.
I see now, your hunk is necessary when color.diff and diff.color is not
set but color.ui is.
Thanks.
| Jun 27, 6:17 am 2008 |
| Olivier Marin | Re: [PATCH 12/13] Build in merge
git_get_colorbool_config() is called via git_diff_ui_config.
Olivier.
--
| Jun 27, 6:04 am 2008 |
| Johannes Schindelin | Re: [PATCH 12/13] Build in merge
Hi,
Maybe strcpy(hex, find_unique_abbrev(head, DEFAULT_ABBREV)) would be more
intuitive?
Ciao,
Dscho
--
| Jun 27, 4:56 am 2008 |
| Olivier Marin | Re: [PATCH 12/13] Build in merge
Absolutely. And also color.ui. The following patch should do the trick:
diff --git a/builtin-merge.c b/builtin-merge.c
index 98adca5..cf557f7 100644
--- a/builtin-merge.c
+++ b/builtin-merge.c
@@ -7,6 +7,7 @@
*/
#include "cache.h"
+#include "color.h"
#include "parse-options.h"
#include "builtin.h"
#include "run-command.h"
@@ -712,6 +713,9 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
git_config(git_merge_config, NULL);
...
| Jun 27, 4:03 am 2008 |
| Miklos Vajna | Re: [PATCH 12/13] Build in merge
That would always turn colors on.
This should respect diff.color:
diff --git a/builtin-merge.c b/builtin-merge.c
index 66189d2..c2a32ee 100644
--- a/builtin-merge.c
+++ b/builtin-merge.c
@@ -331,6 +331,8 @@ static void finish(const unsigned char *new_head, const=
char *msg)
opts.output_format |=3D
DIFF_FORMAT_SUMMARY | DIFF_FORMAT_DIFFSTAT;
opts.detect_rename =3D DIFF_DETECT_RENAME;
+ if (diff_use_color_default > 0)
+ DIFF_OPT_SET(&opts, COLOR_DIFF);
...
| Jun 26, 6:06 pm 2008 |
| Miklos Vajna | Re: [PATCH 12/13] Build in merge
Have you tried this?
First, you need to call git_get_colorbool_config(), second this won't
respect diff.color, while my patch does.
Thanks.
| Jun 27, 5:54 am 2008 |
| Miklos Vajna | Re: 'next' will be rewound shortly
On Fri, Jun 27, 2008 at 07:19:48PM +0200, Stephan Beyer <s-beyer@gmx.net> w=
Ah, OK. Then the code and the documentation differs and that's a bug,
sure.
=46rom git-merge.sh:
# All the rest are the commits being merged; prepare
# the standard merge summary message to be appended to
# the given message.
I did builtin-merge based on git-merge.sh, not the manpage. ;-)
| Jun 27, 12:28 pm 2008 |
| Miklos Vajna | Re: 'next' will be rewound shortly
If my opinion counts, I like the current ("prepend") one, and I think
the best would be to add a new option (and/or make it configurable) for
the new ("replace") one.
| Jun 27, 2:36 pm 2008 |
| Miklos Vajna | Re: 'next' will be rewound shortly
On Fri, Jun 27, 2008 at 06:12:20PM +0200, Stephan Beyer <s-beyer@gmx.net> w=
I think it its current form that is not a bugfix. The user may want to
prepend a custom message and may want to replace the original message
with a custom one, and I would not consider either of them as "buggy".
Funny enough, I just sent a patch:
http://thread.gmane.org/gmane.comp.version-control.git/86584/focus=3D86589
that tests the original behaviour. ;-)
| Jun 27, 9:34 am 2008 |
| Junio C Hamano | Re: 'next' will be rewound shortly
Following git tradition, manpage came after the command's behaviour has
been long established. It will be a behaviour change, and it is open to
debate if the new behaviour is better or if the proposed change of
behaviour hurts existing users.
--
| Jun 27, 2:28 pm 2008 |
| Stephan Beyer | Re: 'next' will be rewound shortly
Hi,
I just looked how you solved that and wanted to start a discussion but
Well, when I do -m <msg>, I expect that my commit message is exactly
<msg>, and not <msg> with appended stuff.
Of course, it doesn't matter what I expect, but I think what the
documentation says matters.
This is (in "master" and in "builtin-merge" of vmiklos.git):
-m <msg>::
The commit message to be used for the merge commit (in case
it is created). The `git-fmt-merge-msg` script can be used
to give a good ...
| Jun 27, 10:19 am 2008 |
| Stephan Beyer | Re: 'next' will be rewound shortly
Well, perhaps I am different, but I sometimes have temporary branches
named like "first-silly-experiment" and I do not expect having a
Merge branch 'another-silly-experiment' into 'first-silly-experiment'
appended, when I do a
git merge -m "Merge a lot of useful stuff... blabla" another-silly-experiment.
(btw, I don't *really* name my branches like this..it's just an example.)
Well, I see this from a "sequencer author point of view", where
merge silly-experiment
will invoke an ...
| Jun 27, 4:41 pm 2008 |
| Stephan Beyer | Re: 'next' will be rewound shortly
I wonder why the bugfix commit
aec7e9cd Don't append default merge message to -m message
has disappeared or why/if this belongs to js/rebase-i-sequencer.
I noticed this because a test case of sequencer failed during rebasing
to pure "master"/"next" without js/rebase-i-sequencer.
I also have a question:
my development branch for the sequencer prototype is based on next,
then:
* Merge js/rebase-i-sequencer
* ... development ...
The only reason that makes js/rebase-i-sequencer ...
| Jun 27, 9:12 am 2008 |
| Johannes Schindelin | Re: [PATCH 1/3] Allow git-apply to ignore the hunk heade ...
Hi,
Actually, it is not. But then, it is an attribute of the patch: it will
be recounted.
In addition, the patch would get quite large and unwieldy with "recount"
being passed between the functions, because we do not have "apply_options"
yet.
I was even briefly working on apply_options, but this would be a _huge_
patch (I had an initial working version, but given my limited time, I
Sorry.
This is my updated patch (making changes to my "add -e" patch, which I
may submit ...
| Jun 27, 10:43 am 2008 |
| previous day | today | next day |
|---|---|---|
| June 26, 2008 | June 27, 2008 | June 28, 2008 |
