* Re: git push bug?
From: Joakim Tjernlund @ 2007-10-18 16:10 UTC (permalink / raw)
To: Steffen Prohaska; +Cc: git
In-Reply-To: <1192723269.9433.21.camel@gentoo-jocke.transmode.se>
On Thu, 2007-10-18 at 18:01 +0200, Joakim Tjernlund wrote:
> On Thu, 2007-10-18 at 17:14 +0200, Steffen Prohaska wrote:
> > On Oct 18, 2007, at 4:50 PM, Joakim Tjernlund wrote:
> >
> > >
> > > I thougth I could create a new branch on the server using:
> > >
> > > # > git push ssh://devsrv/var/git/os2kernel.git linus:refs/linus
> > > Warning: No xauth data; using fake authentication data for X11
> > > forwarding.
> > > updating 'refs/linus' using 'refs/heads/linus'
> > > from 0000000000000000000000000000000000000000
> > > to bbf25010f1a6b761914430f5fca081ec8c7accd1
> > > Generating pack...
> > > Done counting 0 objects.
> > > Writing 0 objects...
> > > Total 0 (delta 0), reused 0 (delta 0)
> > > error: refusing to create funny ref 'refs/linus' locally
> > > ng refs/linus funny refname
> > > error: failed to push to 'ssh://devsrv/var/git/os2kernel.git'
> > >
> > > but that doesn't work. Am I doing this wrong?
> >
> > Include 'heads' in your remote refspec:
> >
> > git push ssh://devsrv/var/git/os2kernel.git linus:refs/heads/linus
>
> Now the push went OK:
> git push ssh://devsrv/var/git/os2kernel.git linus:refs/head/linus
> Warning: No xauth data; using fake authentication data for X11 forwarding.
> updating 'refs/head/linus' using 'refs/heads/linus'
> from 0000000000000000000000000000000000000000
> to bbf25010f1a6b761914430f5fca081ec8c7accd1
> Generating pack...
> Done counting 0 objects.
> Writing 0 objects...
> Total 0 (delta 0), reused 0 (delta 0)
> refs/head/linus: 0000000000000000000000000000000000000000 -> bbf25010f1a6b761914430f5fca081ec8c7accd1
>
> but there is no linus branch in the server repo!
>
> However:
> git push ssh://devsrv/var/git/os2kernel.git linus
>
> creates a linus branch in the server and
>
> git push ssh://devsrv/var/git/os2kernel.git :linus
> Warning: No xauth data; using fake authentication data for X11 forwarding.
> deleting 'refs/heads/linus'
> refs/heads/linus: bbf25010f1a6b761914430f5fca081ec8c7accd1 -> deleted
> Everything up-to-date
>
> deletes the linus branch on the server and so does
> git push ssh://devsrv/var/git/os2kernel.git :refs/heads/linus
>
> ahh, now I see. When creating the branch the refspec needs to be refs/heads/linus,
> not refs/head/linus
>
> refs/head/linus will create just that on the server. git branch does not look
> there, only in refs/heads
>
> Seems like it is a bit too easy to make mistakes here. Why can I delete
> a branch with :linus but not create one with linus:linus?
> Also confusing that git lets me create refs/head/linus when git branch
> cannot find it.
>
> Jocke
BTW this does not work either:
git reset --hard HEAD^
git push -f ssh://devsrv/var/git/os2kernel.git +master:master
updating 'refs/heads/master'
from 9c344d18d01221c8f25080cb58910e6b09efbf55
to 5761a9e5924b34615c748fba2dcb977ed04c1243
Generating pack...
Done counting 0 objects.
Writing 0 objects...
Total 0 (delta 0), reused 0 (delta 0)
error: denying non-fast forward refs/heads/master (you should pull first)
ng refs/heads/master non-fast forward
error: failed to push to 'ssh://devsrv/var/git/os2kernel.git'
I thought the + in +master:master and the -f option should let me
do that.
^ permalink raw reply
* git-merge: need a tap with the cluestick, please
From: walt @ 2007-10-18 16:17 UTC (permalink / raw)
To: git
I just tried my first local modification to Linus's tree, and I
can't get the merge to work. Maybe my whole approach is wrong?
I wanted start compiling the kernel out-of-tree, so I added my
own 'obj' directory at the top level.
I then got conflicts when trying to pull from Linus, so I added
my 'obj' directory to my toplevel .gitignore file and committed
the local change to my 'master' branch. (This is my only local
modification because I'm only tracking Linus, not developing the
kernel.)
Now when I pull from Linus the merge stops in the middle because of
conflicts with my .gitignore file <sigh>. Anything I try now with
git-merge tells me I can't do that in the middle of a conflicted
merge. Yes, I know that now, but what should I do instead?
I could move my 'obj' out-of-tree but then I wouldn't learn anything.
This has to be bone-head easy, but not for me :)
Clues most welcome.
^ permalink raw reply
* Re: git push bug?
From: Johannes Schindelin @ 2007-10-18 16:21 UTC (permalink / raw)
To: Joakim Tjernlund; +Cc: Steffen Prohaska, git
In-Reply-To: <1192723269.9433.21.camel@gentoo-jocke.transmode.se>
Hi,
On Thu, 18 Oct 2007, Joakim Tjernlund wrote:
> Seems like it is a bit too easy to make mistakes here. Why can I delete
> a branch with :linus but not create one with linus:linus?
I wonder why you bother with the colon at all. Just
git push <remote> linus
and be done with it. The colon is only there to play interesting games,
not something as simple as "push this branch" or "push this tag".
Ciao,
Dscho
^ permalink raw reply
* [PATCH] cvs export: ensure we add directories in order
From: Alex Bennee @ 2007-10-18 16:15 UTC (permalink / raw)
To: git
Hi,
CVS gets understandably upset if you try and add a subdirectory before
it's parent directory. This patch fixes that.
>From d99d4e7eb0ce7b85fb84d3c57f57abbb100baa5e Mon Sep 17 00:00:00 2001
From: Alex Bennee <alex@bennee.com>
Date: Thu, 18 Oct 2007 17:12:13 +0100
Subject: [PATCH] Ensure we add directories in the correct order
---
git-cvsexportcommit.perl | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl
index 0a21215..a70c583 100755
--- a/git-cvsexportcommit.perl
+++ b/git-cvsexportcommit.perl
@@ -234,6 +234,17 @@ print "Applying\n";
print "Patch applied successfully. Adding new files and directories to CVS\n";
my $dirtypatch = 0;
+
+#
+# We have to add the directories in order otherwise we will have
+# problems when we try and add the sub-directory of a directory we
+# have not added yet.
+#
+# Luckily this is easy to deal with by sorting the directories and
+# dealing with the shortest ones first.
+#
+@dirs = sort { length $a <=> length $b} @dirs;
+
foreach my $d (@dirs) {
if (system(@cvs,'add',$d)) {
$dirtypatch = 1;
--
1.5.2.5
--
Alex, homepage: http://www.bennee.com/~alex/
Business is a good game -- lots of competition and minimum of rules. You
keep score with money. -- Nolan Bushnell, founder of Atari
^ permalink raw reply related
* Re: git push bug?
From: Steffen Prohaska @ 2007-10-18 16:55 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: Joakim Tjernlund, git
In-Reply-To: <Pine.LNX.4.64.0710181720010.25221@racer.site>
On Oct 18, 2007, at 6:21 PM, Johannes Schindelin wrote:
> On Thu, 18 Oct 2007, Joakim Tjernlund wrote:
>
>> Seems like it is a bit too easy to make mistakes here. Why can I
>> delete
>> a branch with :linus but not create one with linus:linus?
>
> I wonder why you bother with the colon at all. Just
>
> git push <remote> linus
>
> and be done with it. The colon is only there to play interesting
> games,
> not something as simple as "push this branch" or "push this tag".
But you need a full refspec starting with 'refs/heads/' if you want to
create a new branch on the remote side.
Steffen
^ permalink raw reply
* Re: Subversion developer: svn is for dumb people
From: David Brown @ 2007-10-18 16:57 UTC (permalink / raw)
To: Steven Grimm; +Cc: 'git'
In-Reply-To: <47176CE0.7030609@midwinter.com>
On Thu, Oct 18, 2007 at 07:25:36AM -0700, Steven Grimm wrote:
> I can't say he's completely wrong, especially about the 20/80% idea (though
> I think "20%" is generous), but some of his specific arguments about DVCS
> are on the bogus side. "Centralized systems encourage code reviews," for
> one -- I challenge him to find a project with a more pervasive and
> effective code-reviewing culture than the git project. I find code reviews
> *harder* in a centralized system because you end up building external tools
> to help people try out each other's changes.
The review comment is completely bogus. Centralized systems, at least like
SVN and P4 encourage a check-it-in-deal-with-the-problems-later attitude.
The tool discourages you from trying out other's changes, whereas a DVCS
tends to have lots of little branches and easy migration between them.
I think this is less an issue of distributed or not, but more that branches
are just so expensive in most other revision control systems. Whether that
is expensive in resource, or just in understanding what is going on (for
example, requiring users to track merge ancestors is rediculous).
David
^ permalink raw reply
* Re: [PATCH] Make the output of "git svn clone" less confusing.
From: Eric Wong @ 2007-10-18 17:14 UTC (permalink / raw)
To: David Kågedal; +Cc: Shawn O.Pearce, git
In-Reply-To: <87abqgiqsj.fsf@lysator.liu.se>
David Kågedal <davidk@lysator.liu.se> wrote:
> Eric Wong <normalperson@yhbt.net> writes:
>
> > "Shawn O. Pearce" <spearce@spearce.org> wrote:
> >> David Kågedal <davidk@lysator.liu.se> wrote:
> >> > The problem is that the first thing it prints is
> >> >
> >> > Initialized empty Git repository in .git/
> >> >
> >> > even if actually created a subdirectory and changed into it first. But to the
> >> > user, it looks like it is creating a .git/ dir in the directory he/she is
> >> > started git from.
> >>
> >> Eric, ack/nack?
> >
> > Nack, here's (hopefully) a better patch.
> >
> > David: agree/disagree?
>
> I don't really like this. Now you added a dependency on exactly how
> git-init-db will format its output. So if e.g. it is updated to use
> the absolute path your patch will create bogus output.
Yes, it's quite ugly :/ I think the best solution would be to fix all
GIT_DIR= setting issues and getting git-svn to always respect it for
init/clone/fetch (and tests, of course!). I probably won't get around
to doing any of this until Friday night or Saturday (PST), however...
Shawn: feel free to ignore this series for now
> Did you consider my suggestion of not doing the chdir befor running
> git-init-db?
That would likely break clone, and also this (from my message
under the commit message).
> I've actually just noticed that setting GIT_DIR= before running
> git-svn clone is very broken, and I probably won't get a chance
> to fix it for at least 24 hours (if I'm even awake)...
--
Eric Wong
^ permalink raw reply
* Splitting a repository
From: Gonzalo Garramuno @ 2007-10-18 17:35 UTC (permalink / raw)
To: git
I have a project I have been working on for some time and one of its
libraries has grown too much.
I'm now wanting to split that library into a separate git repository.
I'm wondering what's the best way to go around this. Ideally I would
like to have:
* all history on those library files be moved to the new repository.
* all history on those library files be removed from the original
repository.
or:
* have the original repository library directory be "linked" to the new
repository.
--
Gonzalo Garramuño
Film Aura
A New Dawn in Media Companies
gga@filmaura.com
http://www.filmaura.com
^ permalink raw reply
* NI_MAXSERV trivial patch
From: Patrick Welche @ 2007-10-18 17:17 UTC (permalink / raw)
To: git
I found I needed
--- daemon.c.orig 2007-09-02 06:57:44.000000000 +0100
+++ daemon.c 2007-10-18 16:04:00.000000000 +0100
@@ -9,6 +9,10 @@
#define HOST_NAME_MAX 256
#endif
+#ifndef NI_MAXSERV
+#define NI_MAXSERV 32
+#endif
+
static int log_syslog;
static int verbose;
static int reuseaddr;
to compile git, as for me NI_MAXSERV is defined in netdb.h, and it
doesn't seem worthwhile to include the whole header.
Cheers,
Patrick
^ permalink raw reply
* Re: git push bug?
From: Joakim Tjernlund @ 2007-10-18 16:31 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: Steffen Prohaska, git
In-Reply-To: <Pine.LNX.4.64.0710181720010.25221@racer.site>
On Thu, 2007-10-18 at 17:21 +0100, Johannes Schindelin wrote:
> Hi,
>
> On Thu, 18 Oct 2007, Joakim Tjernlund wrote:
>
> > Seems like it is a bit too easy to make mistakes here. Why can I delete
> > a branch with :linus but not create one with linus:linus?
>
> I wonder why you bother with the colon at all. Just
>
> git push <remote> linus
>
> and be done with it. The colon is only there to play interesting games,
> not something as simple as "push this branch" or "push this tag".
First, I didn't know that I could do that.
Secondly, I was also looking do v2.6.23:linus refspecs
Jocke
^ permalink raw reply
* Re: [PATCH] Add a message explaining that automatic GC is about to start
From: Jeff King @ 2007-10-18 18:08 UTC (permalink / raw)
To: Steven Grimm
Cc: Brian Gernhardt, Linus Torvalds, Luke Lu, Christer Weinigel,
Tom Tobin, git
In-Reply-To: <47176AB9.7010409@midwinter.com>
On Thu, Oct 18, 2007 at 07:16:25AM -0700, Steven Grimm wrote:
>> installed in the first place. Perhaps a message more along the lines of
>> "To avoid this, run "git gc" manually on a regular basis. See 'git help
>> gc' for more information."
>
> That's a good point. Jeff / Shawn, do you agree with that? I'll come up with
> an alternate patch if so.
Yes, that seems reasonable. I think the most important thing is that
they realize that "git-gc" is responsible for what is happening. That
should allow them to find more information in the documentation if they
want (and Brian's suggestion points directly to the documentation, which
is great).
-Peff
^ permalink raw reply
* Re: Problem with git-svnimport
From: Jan Hudec @ 2007-10-18 18:09 UTC (permalink / raw)
To: VAUCHER Laurent; +Cc: git
In-Reply-To: <55DDB08CC9CD2941A70E8D626789A2C906A4031A@ec8l7ljvo9h5dde.hosting.exch>
[-- Attachment #1: Type: text/plain, Size: 680 bytes --]
On Tue, Oct 16, 2007 at 14:30:30 +0200, VAUCHER Laurent wrote:
> Hi.
>
> Trying to convert a svn repository to git, I encountered the following
> error:
>
> Use of uninitialized value in hash element at /usr/bin/git-svnimport
> line 534.
>
> Line 534 reads:
> my $gitrev = $branches{$srcbranch}{$therev};
>
> I have installed packages git-core and git-svn on Ubuntu. These
> package have versions: "1:1.5.2.5-2-feisty1"
>
> The tool seems to choke on tags or branches with special characters
> (underscore, for instance).
git-svnimport is obsoleted (or mostly so) by git-svn. Look at that, please.
--
Jan 'Bulb' Hudec <bulb@ucw.cz>
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Re: Subversion developer: svn is for dumb people
From: Jeff King @ 2007-10-18 18:33 UTC (permalink / raw)
To: Steven Grimm; +Cc: 'git'
In-Reply-To: <47176CE0.7030609@midwinter.com>
On Thu, Oct 18, 2007 at 07:25:36AM -0700, Steven Grimm wrote:
> Okay, my summary is slightly facetious, but that's basically the gist of
> what he's saying: you should choose Subversion rather than a DVCS because
> most of your users won't be smart enough to use the better tool.
An interesting point he brings up (which I think is totally bogus) is
(paraphrased): "DVCS systems encourage people to work in isolation and
then patch-bomb the upstream."
But I think it's quite the opposite. He compares two scenarios: in
$DVCS, the user forks, works quietly in their cave for a few weeks, and
then produces a result. With a centralized VCS, the user gets a private
branch, and people keep up with their work as it progresses.
This isn't realistic for two reasons:
1. Contributors to projects now using DVCS systems _weren't_ using SVN
or CVS in this way before (presumably because the effort in getting
private branches set up in a central repository was too much -- if
I want to hack on a project, I want to do it _now_, not after I
have gotten approval to use the VCS by the maintainer). Instead,
they sat in their cave using primitive tools like 'diff' and
'patch' until they patch-bombed the upstream.
2. DVCS systems (well, git, at least) focus on workflows that allow
for quick communication and code review. Patches are a first-class
item in git, which means that
- every change is on the mailing list for review
- work-in-progress patches are easy to post, easy for reviewers
to read, easy for reviewers to apply, and, if accepted,
easy for the maintainer to apply
-Peff
^ permalink raw reply
* Re: [PATCH] Use exit 1 instead of die when req_Root fails.
From: Jan Hudec @ 2007-10-18 18:54 UTC (permalink / raw)
To: Brian Gernhardt; +Cc: Morten Welinder, git, spearce
In-Reply-To: <DC3D43FD-F03D-4E0A-9C2B-DE56F9C16D60@silverinsanity.com>
[-- Attachment #1: Type: text/plain, Size: 2093 bytes --]
On Wed, Oct 17, 2007 at 11:16:34 -0400, Brian Gernhardt wrote:
>
> On Oct 17, 2007, at 10:39 AM, Morten Welinder wrote:
>
>>> made it into your repo. It fixes test failures on my machine that have
>>> been plauging me for months.
>>
>> That sounds more like a reason to fix the test. "die" is the perl
>> standard way of reporting an error. It will print the error message
>> on stderr, not on stdout like your version does.
>>
>> IMHO, of course.
>
> The problem is that die can exit with varying exit codes, and exit codes >=
> 128 make the test suite assume something has gone wrong with the test. In
> particular, because $! (errcode) and $? (previous shell command return) are
> both 0, it returns 255. Or at least that's how it works out on my system.
> I'm not sure why it doesn't do that on others.
>
> But the test is expecting a failure here and it appears to be failing in
> the correct way, just with an error code test-lib.sh doesn't like. I asked
> on list the best way to fix it and Frank Lichtenheld said (and nobody
> objected until now) that this was the best way to fix it.
>
> Also, the not printing on STRERR is identical to another section of code
> just below mine:
>
>> unless ($line eq 'anonymous') {
>> print "E Only anonymous user allowed via pserver\n";
>> print "I HATE YOU\n";
>> exit 1;
>> }
>
> However, amending my patch to print to STDERR is not difficult.
Hm. There are two kinds of errors in git-cvsserver and they should be handled
differently.
If the error is an invalid request (like the quoted one), there should be
normal print, to STDOUT, starting with "E", because it's an error message
that should be sent to the client.
On the other hand if the error is internal error in the script or it's
configuration, than the error should probably be reported via die, *without*
E at the begining (it will be prefixed with location anyway). Such message
will probably end up in the log rather than sent to the client.
--
Jan 'Bulb' Hudec <bulb@ucw.cz>
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Application to install man pages.
From: Evan Carroll @ 2007-10-18 18:59 UTC (permalink / raw)
To: git
This is a one liner but might help for simply a quick install of the
git manpages.
>From f5797d786fd4a6f9633054bb0f0ce894a06d6650 Mon Sep 17 00:00:00 2001
From: root <root@x60s.(none)>
Date: Thu, 18 Oct 2007 13:45:16 -0500
Subject: [PATCH] install_man.sh script which installs the man pages
---
install_man.sh | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
create mode 100755 install_man.sh
diff --git a/install_man.sh b/install_man.sh
new file mode 100755
index 0000000..b722425
--- /dev/null
+++ b/install_man.sh
@@ -0,0 +1,2 @@
+#/bin/sh
+ cp -R --copy-contents ./man* /usr/local/man
--
1.5.3.4.206.g58ba4
I was also wondering if it might be useful to have a command in the
master branch of the git repo that switches branches and installs the
man pages.. possibly as run in the makefile if .git exists then switch
branches, and run install_man.sh. Just an idea.
--
Evan Carroll
System Lord of the Internets
me@evancarroll.com
832-445-8877
^ permalink raw reply related
* [PATCH] attr: fix segfault in gitattributes parsing code
From: Steffen Prohaska @ 2007-10-18 20:02 UTC (permalink / raw)
To: spearce; +Cc: git, Steffen Prohaska
git may segfault if gitattributes contains an invalid
entry. A test is added to t0020 that triggers the segfault.
The parsing code is fixed to avoid the crash.
Signed-off-by: Steffen Prohaska <prohaska@zib.de>
---
attr.c | 5 ++++-
t/t0020-crlf.sh | 7 +++++++
2 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/attr.c b/attr.c
index 92704a3..741db3b 100644
--- a/attr.c
+++ b/attr.c
@@ -209,8 +209,11 @@ static struct match_attr *parse_attr_line(const char *line, const char *src,
num_attr = 0;
cp = name + namelen;
cp = cp + strspn(cp, blank);
- while (*cp)
+ while (*cp) {
cp = parse_attr(src, lineno, cp, &num_attr, res);
+ if (!cp)
+ return NULL;
+ }
if (pass)
break;
res = xcalloc(1,
diff --git a/t/t0020-crlf.sh b/t/t0020-crlf.sh
index 0807d9f..62bc4bb 100755
--- a/t/t0020-crlf.sh
+++ b/t/t0020-crlf.sh
@@ -371,4 +371,11 @@ test_expect_success 'in-tree .gitattributes (4)' '
}
'
+test_expect_success 'invalid .gitattributes (must not crash)' '
+
+ echo "three +crlf" >>.gitattributes &&
+ git diff
+
+'
+
test_done
--
1.5.3.4.1261.g626eb
^ permalink raw reply related
* git on afs
From: Todd T. Fries @ 2007-10-18 20:31 UTC (permalink / raw)
To: git
I have always been frustrated by trying git on afs.
The other day I finally decided to look into why.
Looks like two reasons caused my frustrations.
1) git presumes that link() works fine across subdirs; in afs land,
hardlinks do not succeed ever
2) git presumes that DTYPE(de) != DT_DIR .. means the dirent is not a dir
this is not true for afs
I have been using this to sync several git trees, including linux-2.6 for the
past week without issues writing to a local afs server.
What do you guys think?
diff --git a/dir.c b/dir.c
index eb6c3ab..a3e53a5 100644
--- a/dir.c
+++ b/dir.c
@@ -487,9 +487,19 @@ static int read_directory_recursive(struct dir_struct *dir, const char *path, co
&& in_pathspec(fullname, baselen + len, simplify))
dir_add_ignored(dir, fullname, baselen + len);
if (exclude != dir->show_ignored) {
- if (!dir->show_ignored || DTYPE(de) != DT_DIR) {
+ if (!dir->show_ignored)
continue;
}
+ if (DTYPE(de) == DT_UNKNOWN) {
+ struct stat st;
+ if (lstat(fullname, &st))
+ continue;
+ if (!S_ISDIR(st.st_mode))
+ continue;
+ } else {
+ if (DTYPE(de) != DT_DIR)
+ continue;
+ }
}
switch (DTYPE(de)) {
diff --git a/sha1_file.c b/sha1_file.c
index 83a06a7..1b93322 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -1961,7 +1961,7 @@ static int link_temp_to_file(const char *tmpfile, const char *filename)
int ret;
char *dir;
- if (!link(tmpfile, filename))
+ if (!rename(tmpfile, filename))
return 0;
/*
@@ -1980,7 +1980,7 @@ static int link_temp_to_file(const char *tmpfile, const char *filename)
return -2;
}
*dir = '/';
- if (!link(tmpfile, filename))
+ if (!rename(tmpfile, filename))
return 0;
ret = errno;
}
--
Todd Fries .. todd@fries.net
_____________________________________________
| \ 1.636.410.0632 (voice)
| Free Daemon Consulting, LLC \ 1.405.227.9094 (voice)
| http://FreeDaemonConsulting.com \ 1.866.792.3418 (FAX)
| "..in support of free software solutions." \ 250797 (FWD)
| \
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
37E7 D3EB 74D0 8D66 A68D B866 0326 204E 3F42 004A
http://todd.fries.net/pgp.txt
^ permalink raw reply related
* Re: How to Import a bitkeeper repo into git - Had a few questions on Qgit; I like the GUI.
From: Robin Rosenberg @ 2007-10-18 21:12 UTC (permalink / raw)
To: Marco Costalba
Cc: pete, piet.delaney, Linus Torvalds, VMiklos, free cycle, git,
piet.delaney, Piet Delaney
In-Reply-To: <e5bfff550710171626h733228aw7a251746d2b43c63@mail.gmail.com>
torsdag 18 oktober 2007 skrev Marco Costalba:
> On 10/17/07, Robin Rosenberg <robin.rosenberg.lists@dewire.com> wrote:
> >
> > You could avoid the temporary files if you just pipe the diff to kompare. That
> > would require an option to tell qgit that the external viewer can read a git diff.
> >
> > At the time qgit 1.5 was written, kompare could not handle git diffs.
> >
>
> So does the other tools I have checked at that time.
>
> But I don't know if this fixes the problem of slowness reported. A
> little test Pete may do is just as I have written in the former email:
> try to save the big files that cause troubles where he prefers and run
> Kompare on them directly from the command line.
>
> Is kompare faster? If no probably the 'pipe' technique will not solve
> the problem and shrinks the applicability of the external diff
> launcher to tools that handle diffs directly.
kompare is pretty fast. Obviously not as fast as less.
"git diff HEAD HEAD~1000|kompare -" takes less than two seconds (hot cache)
on my machine. With small diffs it is almost instantaneous.
-- robin
^ permalink raw reply
* Re: git on afs
From: Brandon Casey @ 2007-10-18 21:28 UTC (permalink / raw)
To: Todd T. Fries; +Cc: git
In-Reply-To: <20071018203106.GA13518@fries.net>
On Thu, 18 Oct 2007, Todd T. Fries wrote:
> 1) git presumes that link() works fine across subdirs; in afs land,
> hardlinks do not succeed ever
I think this already falls back to rename() on failure.
Take a look at move_temp_to_file(), this is the only
place that calls link_temp_to_file().
link() on afs returns non-zero? and not EEXIST right?
-brandon
^ permalink raw reply
* Re: git on afs
From: Brandon Casey @ 2007-10-18 21:57 UTC (permalink / raw)
To: Todd T. Fries; +Cc: git
In-Reply-To: <20071018203106.GA13518@fries.net>
On Thu, 18 Oct 2007, Todd T. Fries wrote:
> 2) git presumes that DTYPE(de) != DT_DIR .. means the dirent is not a dir
> this is not true for afs
>
> I have been using this to sync several git trees, including linux-2.6 for the
> past week without issues writing to a local afs server.
>
> What do you guys think?
>
> diff --git a/dir.c b/dir.c
> index eb6c3ab..a3e53a5 100644
> --- a/dir.c
> +++ b/dir.c
> @@ -487,9 +487,19 @@ static int read_directory_recursive(struct dir_struct *dir, const char *path, co
> && in_pathspec(fullname, baselen + len, simplify))
> dir_add_ignored(dir, fullname, baselen + len);
> if (exclude != dir->show_ignored) {
> - if (!dir->show_ignored || DTYPE(de) != DT_DIR) {
> + if (!dir->show_ignored)
you're missing an open bracket ^^^
> continue;
> }
or delete this one ^^^
> + if (DTYPE(de) == DT_UNKNOWN) {
> + struct stat st;
> + if (lstat(fullname, &st))
> + continue;
> + if (!S_ISDIR(st.st_mode))
> + continue;
> + } else {
> + if (DTYPE(de) != DT_DIR)
> + continue;
> + }
> }
>
> switch (DTYPE(de)) {
seems sane to me.
If no one else brings up any issues, you should retest and submit
a signed patch with a good comment. Use -s with git-commit.
Then git-format-patch will produce the proper output.
-brandon
^ permalink raw reply
* Re: git push bug?
From: Johannes Schindelin @ 2007-10-18 21:58 UTC (permalink / raw)
To: Steffen Prohaska; +Cc: Joakim Tjernlund, git
In-Reply-To: <9EEDF284-22BE-44BF-A9B8-116407784BEB@zib.de>
Hi,
On Thu, 18 Oct 2007, Steffen Prohaska wrote:
> On Oct 18, 2007, at 6:21 PM, Johannes Schindelin wrote:
>
> > On Thu, 18 Oct 2007, Joakim Tjernlund wrote:
> >
> > > Seems like it is a bit too easy to make mistakes here. Why can I delete
> > > a branch with :linus but not create one with linus:linus?
> >
> > I wonder why you bother with the colon at all. Just
> >
> > git push <remote> linus
> >
> > and be done with it. The colon is only there to play interesting games,
> > not something as simple as "push this branch" or "push this tag".
>
> But you need a full refspec starting with 'refs/heads/' if you want to
> create a new branch on the remote side.
No. Not if the name is the same on the local side.
Ciao,
Dscho
^ permalink raw reply
* Re: git push bug?
From: Johannes Schindelin @ 2007-10-18 22:00 UTC (permalink / raw)
To: Joakim Tjernlund; +Cc: Steffen Prohaska, git
In-Reply-To: <1192725116.4954.7.camel@gentoo-jocke.transmode.se>
Hi,
On Thu, 18 Oct 2007, Joakim Tjernlund wrote:
> On Thu, 2007-10-18 at 17:21 +0100, Johannes Schindelin wrote:
>
> > On Thu, 18 Oct 2007, Joakim Tjernlund wrote:
> >
> > > Seems like it is a bit too easy to make mistakes here. Why can I
> > > delete a branch with :linus but not create one with linus:linus?
> >
> > I wonder why you bother with the colon at all. Just
> >
> > git push <remote> linus
> >
> > and be done with it. The colon is only there to play interesting
> > games, not something as simple as "push this branch" or "push this
> > tag".
>
> First, I didn't know that I could do that. Secondly, I was also looking
> do v2.6.23:linus refspecs
First, then our documentation could be better. How?
Second, why not "git checkout -b linus v2.6.23 && git push origin linus"?
Ciao,
Dscho
^ permalink raw reply
* Re: [BUG] git-svn not following svn moves
From: Sam Vilain @ 2007-10-18 22:04 UTC (permalink / raw)
To: cho; +Cc: git
In-Reply-To: <ff7m2j$2eu$2@ger.gmane.org>
cho wrote:
> I've surprised myself but yes, there is a simple testcase.
>
> svnadmin create repo
> svn checkout file://$PWD/repo checkout
> cd checkout/
> svn mkdir trunk tags branches
> svn ci -m 'Standard svn layout.'
> cd trunk/
> svn mkdir doc
> touch doc/README
> svn add doc/README
> svn ci -m 'Add README.'
> cd ..
> svn mv trunk/ branches/oldtrunk
> svn ci -m 'Moved trunk.'
> svn mkdir trunk
> svn ci -m 'New trunk.'
> cd trunk/
> touch THIS_IS_THE_NEW_TRUNK
> svn add THIS_IS_THE_NEW_TRUNK
> svn ci -m 'Add marker.'
> cd ../..
> git svn clone file://$PWD/repo --stdlayout git-clone
> cd git-clone/
> tree
>
> So the testcase basically involves moving the trunk.
> git-svn gets very confused and keeps a mixture of the old and new trunk.
Were you using --follow-parent or not?
Sam.
^ permalink raw reply
* Re: linux-2.6.git mirror
From: Linus Torvalds @ 2007-10-18 22:26 UTC (permalink / raw)
To: Medve Emilian-EMMEDVE1; +Cc: git
In-Reply-To: <598D5675D34BE349929AF5EDE9B03E2701684C77@az33exm24.fsl.freescale.net>
On Tue, 16 Oct 2007, Medve Emilian-EMMEDVE1 wrote:
>
> $ git remote update
> Updating origin
> error: Object 5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c is a tree, not a commit
> error: Object 5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c is a tree, not a commit
Interesting. Something seems to be assuming that all tags are commits.
Which is not true. You can have (and the kernel repo does this) a tag
pointing to a pure tree state (with no history), or as in the case of git
itself, there's a tag pointing to a blob that contains Junio's public key.
> The situation is similar with the git tree:
>
> error: Object a0e7d36193b96f552073558acf5fcc1f10528917 is a blob, not a commit
Yeah, same thing.
> Is this something I should be worried about?
No, but if it still happens with a newer git, holler.
Linus
^ permalink raw reply
* Re: [PATCH] git-blame shouldn't crash if run in an unmerged tree
From: Linus Torvalds @ 2007-10-18 22:38 UTC (permalink / raw)
To: Shawn O. Pearce; +Cc: git, B.Steinbrink
In-Reply-To: <20071018063407.GA28861@spearce.org>
On Thu, 18 Oct 2007, Shawn O. Pearce wrote:
>
> I'm applying this patch to my maint tree tonight as it does resolve
> the issue for now. What surprised me was the file that we were
> crashing out on wasn't even the file we wanted to get the blame
> data for. :-\
Please feel free to add a Signed-off-by: there. I guess I didn't add it in
the original email, because I wasn't sure if I'd have the energy to see if
I could just remove the clearing of "ce_mode". I never did.
That whole "ce->ce_mode = 0" thing is really hacky, and we use it for two
totally different things ("git read-tree" uses it for "delete this entry",
and reading the index uses it when you ask for only merged entries). Bad
form, and not very logical.
Linus
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox