* Re: linux-2.6 clone with CygWin git
From: David Brown @ 2007-11-09 15:03 UTC (permalink / raw)
To: Medve Emilian; +Cc: git
In-Reply-To: <598D5675D34BE349929AF5EDE9B03E270174D8A2@az33exm24.fsl.freescale.net>
On Fri, Nov 09, 2007 at 07:29:07AM -0700, Medve Emilian wrote:
># modified: include/linux/netfilter/xt_CONNMARK.h
>
>Can somebody please double-check this scenario for me just to validate
>that this happens only due to some particular factors combination on my
>box?
It's because of the case-insensitive nature of the filesystem. The kernel
contains both an xt_connmark.h and an xt_CONNMARK.h file, that are
different. But only one exists on Windows, so git sees the first one it
wrote as having been modified.
David
^ permalink raw reply
* Re: linux-2.6 clone with CygWin git
From: Simon Sasburg @ 2007-11-09 15:02 UTC (permalink / raw)
To: Medve Emilian; +Cc: git
In-Reply-To: <598D5675D34BE349929AF5EDE9B03E270174D8A2@az33exm24.fsl.freescale.net>
This is not a problem with git.
The kernel tree contains files which only differ from other files by case.
If on a case-insensitive filesystem this will cause problems like the
ones you noticed.
On Nov 9, 2007 3:29 PM, Medve Emilian <Emilian.Medve@freescale.com> wrote:
> Hello,
>
>
> I noticed that something might not be right with my CygWin git (latest
> CygWin relevant build packages + a few days old git build from the next
> & master branches). When I clone, say, Linus' tree over the native git
> protocol everything goes fine but a git-status shows this:
>
> $ git-status
> # On branch master
> # Changed but not updated:
> # (use "git add <file>..." to update what will be committed)
> #
> # modified: include/linux/netfilter/xt_CONNMARK.h
> # modified: include/linux/netfilter/xt_DSCP.h
> # modified: include/linux/netfilter/xt_MARK.h
> # modified: include/linux/netfilter/xt_TCPMSS.h
> # modified: include/linux/netfilter_ipv4/ipt_CONNMARK.h
> # modified: include/linux/netfilter_ipv4/ipt_DSCP.h
> # modified: include/linux/netfilter_ipv4/ipt_ECN.h
> # modified: include/linux/netfilter_ipv4/ipt_MARK.h
> # modified: include/linux/netfilter_ipv4/ipt_TCPMSS.h
> # modified: include/linux/netfilter_ipv4/ipt_TOS.h
> # modified: include/linux/netfilter_ipv4/ipt_TTL.h
> # modified: include/linux/netfilter_ipv6/ip6t_HL.h
> # modified: include/linux/netfilter_ipv6/ip6t_MARK.h
> # modified: net/ipv4/netfilter/ipt_ECN.c
> # modified: net/ipv4/netfilter/ipt_TOS.c
> # modified: net/ipv4/netfilter/ipt_TTL.c
> # modified: net/ipv6/netfilter/ip6t_HL.c
> # modified: net/netfilter/xt_CONNMARK.c
> # modified: net/netfilter/xt_DSCP.c
> # modified: net/netfilter/xt_MARK.c
> # modified: net/netfilter/xt_TCPMSS.c
> #
> no changes added to commit (use "git add" and/or "git commit -a")
>
> git-fsck --strict --full finds no fault in the clone, git-reset --hard
> goes fine but changes nothing in the output of git-status. Some
> additional superficial investigation showed that git-diff doesn't even
> compare my checked out tree against the latest commit. Checkout of
> various commits shows the same issue.
>
> Can somebody please double-check this scenario for me just to validate
> that this happens only due to some particular factors combination on my
> box?
>
>
> Thanks,
> Emil.
> -
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply
* Re: corrupt object on git-gc
From: Yossi Leybovich @ 2007-11-09 15:01 UTC (permalink / raw)
To: Andreas Ericsson; +Cc: git, Yossi Leybovich
In-Reply-To: <473464A2.7080003@op5.se>
On Nov 9, 2007 8:46 AM, Andreas Ericsson <ae@op5.se> wrote:
>
> Is this a super-secret project or you can make a tarball of the .git
> directory and send it to me? Trying to track down the cause through
> email is decidedly slow.
>
Actually yes , I am not sure I can send the repository , I will
farther check that.
>
> One tree uses the object. I'm not sure if any commit-objects
> use the tree. Try
>
> for b in $(git branch --no-color -a | cut -b3-); do
> for rev in $(git rev-list HEAD); do
> git ls-tree -r $rev | grep -q 2d9263c6d23595e7cb2a21e5ebbb53655278dff8
> test $? -eq 0 && echo $rev && break
> done
> done
tried this and it return empty
[mellanox@mellanox-compile ib]$
[mellanox@mellanox-compile ib]$ for b in $(git branch --no-color -a |
cut -b3-); do
> for rev in $(git rev-list HEAD); do
> git ls-tree -r $rev | grep -q 2d9263c6d23595e7cb2a21e5ebbb53655278dff8;
> test $? -eq 0 && echo $rev && break;
> done; done
[mellanox@mellanox-compile ib]$
[mellanox@mellanox-compile ib]$
[BTW I didn't notice u use the b varieble so I also tried gi rev-list
$b but still empty ]
I also tried to remove object and tree and apperently other trees and
commits reference to these objects
mv ../9458b3786228369c63936db65827de3cc06200 ../4b/
mv: cannot stat `../9458b3786228369c63936db65827de3cc06200': No such
file or directory
[mellanox@mellanox-compile ib]$ mv
.git/objects/4b/9458b3786228369c63936db65827de3cc06200 ../4b/
[mellanox@mellanox-compile ib]$ mv
.git/objects/2d/9263c6d23595e7cb2a21e5ebbb53655278dff8 ../2d/
[mellanox@mellanox-compile ib]$ git-fsck --full
broken link from tree e5a0044c4ccae7635f07414c1f155bac72d25fd9
to tree 2d9263c6d23595e7cb2a21e5ebbb53655278dff8
dangling commit 0d43a63623237385e432572bf61171713dcd8e98
dangling commit 4fc6b1127e4a7f4ff5b65a2dd8a90779b5aff3e0
dangling commit 7da607374fe2b1ae09228d2035dd608c73dad7c8
dangling commit 004ef09ae022c60a30f9cd61f90d18df5db3628e
broken link from tree 8bd00402b2a20024f4556107b8a729b0205657db
to tree 2d9263c6d23595e7cb2a21e5ebbb53655278dff8
dangling commit 85112c6fabb6b8913ab244a8645d67380616eba6
missing tree 2d9263c6d23595e7cb2a21e5ebbb53655278dff8
dangling commit bd98481afa93356fa6daa4b6f88c4e631ae2fd72
dangling commit e81e3d2c9c25e5bf5b31327b10b23f9bd0a6d056
dangling commit 92ff9b8cbc771345c9cde0c7fef2c23bb79242b9
>
> If it turns up empty, you *should* be able to safely delete
> 2d9263c6d23595e7cb2a21e5ebbb53655278dff8 and
> 4b9458b3786228369c63936db65827de3cc06200
>
> Make sure to take a backup first though.
a lot of commits and trees point to this
>
> --
> Andreas Ericsson andreas.ericsson@op5.se
> OP5 AB www.op5.se
> Tel: +46 8-230225 Fax: +46 8-230231
>
^ permalink raw reply
* Re: linux-2.6 clone with CygWin git
From: Andreas Ericsson @ 2007-11-09 15:00 UTC (permalink / raw)
To: Medve Emilian; +Cc: git
In-Reply-To: <598D5675D34BE349929AF5EDE9B03E270174D8A2@az33exm24.fsl.freescale.net>
Medve Emilian wrote:
> Hello,
>
>
> I noticed that something might not be right with my CygWin git (latest
> CygWin relevant build packages + a few days old git build from the next
> & master branches). When I clone, say, Linus' tree over the native git
> protocol everything goes fine but a git-status shows this:
>
> $ git-status
> # On branch master
> # Changed but not updated:
> # (use "git add <file>..." to update what will be committed)
> #
> # modified: include/linux/netfilter/xt_CONNMARK.h
> # modified: include/linux/netfilter/xt_DSCP.h
> # modified: include/linux/netfilter/xt_MARK.h
> # modified: include/linux/netfilter/xt_TCPMSS.h
> # modified: include/linux/netfilter_ipv4/ipt_CONNMARK.h
> # modified: include/linux/netfilter_ipv4/ipt_DSCP.h
> # modified: include/linux/netfilter_ipv4/ipt_ECN.h
> # modified: include/linux/netfilter_ipv4/ipt_MARK.h
> # modified: include/linux/netfilter_ipv4/ipt_TCPMSS.h
> # modified: include/linux/netfilter_ipv4/ipt_TOS.h
> # modified: include/linux/netfilter_ipv4/ipt_TTL.h
> # modified: include/linux/netfilter_ipv6/ip6t_HL.h
> # modified: include/linux/netfilter_ipv6/ip6t_MARK.h
> # modified: net/ipv4/netfilter/ipt_ECN.c
> # modified: net/ipv4/netfilter/ipt_TOS.c
> # modified: net/ipv4/netfilter/ipt_TTL.c
> # modified: net/ipv6/netfilter/ip6t_HL.c
> # modified: net/netfilter/xt_CONNMARK.c
> # modified: net/netfilter/xt_DSCP.c
> # modified: net/netfilter/xt_MARK.c
> # modified: net/netfilter/xt_TCPMSS.c
> #
> no changes added to commit (use "git add" and/or "git commit -a")
>
> git-fsck --strict --full finds no fault in the clone, git-reset --hard
> goes fine but changes nothing in the output of git-status. Some
> additional superficial investigation showed that git-diff doesn't even
> compare my checked out tree against the latest commit. Checkout of
> various commits shows the same issue.
>
> Can somebody please double-check this scenario for me just to validate
> that this happens only due to some particular factors combination on my
> box?
>
Your filesystem is not case sensitive and there are files with identical
names (apart from the case thing) in the Linux kernel repo.
--
Andreas Ericsson andreas.ericsson@op5.se
OP5 AB www.op5.se
Tel: +46 8-230225 Fax: +46 8-230231
^ permalink raw reply
* [PATCH] git-push: add documentation for the newly add --mirror mode
From: Andy Whitcroft @ 2007-11-09 15:01 UTC (permalink / raw)
To: git
In-Reply-To: <1194619555.0@pinky>
Add some basic documentation on the --mirror mode for git-push.
Signed-off-by: Andy Whitcroft <apw@shadowen.org>
---
Documentation/git-push.txt | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
index e5dd4c1..2403621 100644
--- a/Documentation/git-push.txt
+++ b/Documentation/git-push.txt
@@ -62,6 +62,14 @@ the remote repository.
\--all::
Instead of naming each ref to push, specifies that all
refs under `$GIT_DIR/refs/heads/` be pushed.
+
+\--mirror::
+ Instead of naming each ref to push, specifies that all
+ refs under `$GIT_DIR/refs/heads/` and `$GIT_DIR/refs/tags/`
+ be mirrored to the remote repository. Newly created local
+ refs will be pushed to the remote end, locally updated refs
+ will be force updated on the remote end, and deleted refs
+ will be removed from the remote end.
\--dry-run::
Do everything except actually send the updates.
^ permalink raw reply related
* [PATCH] tests: git push mirror mode tests V2 -- add tag tests
From: Andy Whitcroft @ 2007-11-09 14:45 UTC (permalink / raw)
To: git
In-Reply-To: <1194603673.0@pinky>
Add additional tests to the the V2 tests testing the handling of
tags in --mirror mode. We expect these to be tracked in line with
the master.
Signed-off-by: Andy Whitcroft <apw@shadowen.org>
---
Note that this patch is cumulative on top of the following
patch:
tests: git push mirror mode tests V2
These two patches together replace the 4/4 from the original
series.
---
t/t5517-push-mirror.sh | 105 +++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 104 insertions(+), 1 deletions(-)
diff --git a/t/t5517-push-mirror.sh b/t/t5517-push-mirror.sh
index a65d2f5..ec87ce5 100755
--- a/t/t5517-push-mirror.sh
+++ b/t/t5517-push-mirror.sh
@@ -30,6 +30,7 @@ mk_repo_pair () {
}
+# BRANCH tests
test_expect_success 'push mirror does not create new branches' '
mk_repo_pair &&
@@ -96,7 +97,7 @@ test_expect_success 'push mirror does not remove branches' '
'
-test_expect_success 'push mirror does not add, update and remove together' '
+test_expect_success 'push mirror does not add, update and remove branches together' '
mk_repo_pair &&
(
@@ -122,4 +123,106 @@ test_expect_success 'push mirror does not add, update and remove together' '
'
+
+# TAG tests
+test_expect_success 'push mirror does not create new tags' '
+
+ mk_repo_pair &&
+ (
+ cd master &&
+ echo one >foo && git add foo && git commit -m one &&
+ git tag -f tmaster master &&
+ git push --mirror up
+ ) &&
+ master_master=$(cd master && git show-ref -s --verify refs/tags/tmaster) &&
+ mirror_master=$(cd mirror && git show-ref -s --verify refs/tags/tmaster) &&
+ test "$master_master" = "$mirror_master"
+
+'
+
+test_expect_success 'push mirror does not update existing tags' '
+
+ mk_repo_pair &&
+ (
+ cd master &&
+ echo one >foo && git add foo && git commit -m one &&
+ git tag -f tmaster master &&
+ git push --mirror up &&
+ echo two >foo && git add foo && git commit -m two &&
+ git tag -f tmaster master &&
+ git push --mirror up
+ ) &&
+ master_master=$(cd master && git show-ref -s --verify refs/tags/tmaster) &&
+ mirror_master=$(cd mirror && git show-ref -s --verify refs/tags/tmaster) &&
+ test "$master_master" = "$mirror_master"
+
+'
+
+test_expect_success 'push mirror does not force update existing tags' '
+
+ mk_repo_pair &&
+ (
+ cd master &&
+ echo one >foo && git add foo && git commit -m one &&
+ git tag -f tmaster master &&
+ git push --mirror up &&
+ echo two >foo && git add foo && git commit -m two &&
+ git tag -f tmaster master &&
+ git push --mirror up &&
+ git reset --hard HEAD^
+ git tag -f tmaster master &&
+ git push --mirror up
+ ) &&
+ master_master=$(cd master && git show-ref -s --verify refs/tags/tmaster) &&
+ mirror_master=$(cd mirror && git show-ref -s --verify refs/tags/tmaster) &&
+ test "$master_master" = "$mirror_master"
+
+'
+
+test_expect_success 'push mirror does not remove tags' '
+
+ mk_repo_pair &&
+ (
+ cd master &&
+ echo one >foo && git add foo && git commit -m one &&
+ git tag -f tremove master &&
+ git push --mirror up &&
+ git tag -d tremove
+ git push --mirror up
+ ) &&
+ (
+ cd mirror &&
+ invert git show-ref -s --verify refs/tags/tremove
+ )
+
+'
+
+test_expect_success 'push mirror does not add, update and remove tags together' '
+
+ mk_repo_pair &&
+ (
+ cd master &&
+ echo one >foo && git add foo && git commit -m one &&
+ git tag -f tmaster master &&
+ git tag -f tremove master &&
+ git push --mirror up &&
+ git tag -d tremove &&
+ git tag tadd master &&
+ echo two >foo && git add foo && git commit -m two &&
+ git tag -f tmaster master &&
+ git push --mirror up
+ ) &&
+ master_master=$(cd master && git show-ref -s --verify refs/tags/tmaster) &&
+ master_add=$(cd master && git show-ref -s --verify refs/tags/tadd) &&
+ mirror_master=$(cd mirror && git show-ref -s --verify refs/tags/tmaster) &&
+ mirror_add=$(cd mirror && git show-ref -s --verify refs/tags/tadd) &&
+ test "$master_master" = "$mirror_master" &&
+ test "$master_add" = "$mirror_add" &&
+ (
+ cd mirror &&
+ invert git show-ref -s --verify refs/tags/tremove
+ )
+
+'
+
test_done
^ permalink raw reply related
* Re: git push failing, unpacker error
From: Jon Smirl @ 2007-11-09 14:43 UTC (permalink / raw)
To: Git Mailing List
In-Reply-To: <9e4733910711090637tcf7e837na863a4276578bf3f@mail.gmail.com>
On 11/9/07, Jon Smirl <jonsmirl@gmail.com> wrote:
> I updated both sides to current git and it still fails. How do I debug this?
> What's causing this, "error: pack-objects died with strange error"?
My remote host is running 2.4.32, is git ok on that kernel?
>
>
> jonsmirl@terra:~/mpc5200b$ git push dreamhost
> To ssh://jonsmirl1@git.digispeaker.com/~/mpc5200b.git
> * [new branch] m24 -> linus/m24
> * [new branch] m25 -> linus/m25
> * [new branch] m26 -> linus/m26
> * [new branch] m28 -> linus/m28
> * [new branch] m29 -> linus/m29
> Counting objects: 81156, done.
> Compressing objects: 100% (15280/15280), done.
> error: pack-objects died with strange errorMiB | 412 KiB/s
> unpack index-pack abnormal exit
> ng refs/remotes/linus/m24 n/a (unpacker error)
> ng refs/remotes/linus/m25 n/a (unpacker error)
> ng refs/remotes/linus/m26 n/a (unpacker error)
> ng refs/remotes/linus/m28 n/a (unpacker error)
> ng refs/remotes/linus/m29 n/a (unpacker error)
> error: failed to push to 'ssh://jonsmirl1@git.digispeaker.com/~/mpc5200b.git'
> jonsmirl@terra:~/mpc5200b$
>
>
>
> --
> Jon Smirl
> jonsmirl@gmail.com
>
--
Jon Smirl
jonsmirl@gmail.com
^ permalink raw reply
* Re: git push failing, unpacker error
From: Jon Smirl @ 2007-11-09 14:37 UTC (permalink / raw)
To: Git Mailing List
In-Reply-To: <9e4733910711082155t62df9d4by10bd3f546ffbd950@mail.gmail.com>
I updated both sides to current git and it still fails. How do I debug this?
What's causing this, "error: pack-objects died with strange error"?
jonsmirl@terra:~/mpc5200b$ git push dreamhost
To ssh://jonsmirl1@git.digispeaker.com/~/mpc5200b.git
* [new branch] m24 -> linus/m24
* [new branch] m25 -> linus/m25
* [new branch] m26 -> linus/m26
* [new branch] m28 -> linus/m28
* [new branch] m29 -> linus/m29
Counting objects: 81156, done.
Compressing objects: 100% (15280/15280), done.
error: pack-objects died with strange errorMiB | 412 KiB/s
unpack index-pack abnormal exit
ng refs/remotes/linus/m24 n/a (unpacker error)
ng refs/remotes/linus/m25 n/a (unpacker error)
ng refs/remotes/linus/m26 n/a (unpacker error)
ng refs/remotes/linus/m28 n/a (unpacker error)
ng refs/remotes/linus/m29 n/a (unpacker error)
error: failed to push to 'ssh://jonsmirl1@git.digispeaker.com/~/mpc5200b.git'
jonsmirl@terra:~/mpc5200b$
--
Jon Smirl
jonsmirl@gmail.com
^ permalink raw reply
* Re: [PATCH] Make builtin-tag.c use parse_options.
From: Johannes Schindelin @ 2007-11-09 14:31 UTC (permalink / raw)
To: Jakub Narebski; +Cc: git, jasampler
In-Reply-To: <fh1p10$nta$1@ger.gmane.org>
Hi,
[re Cc:ing jasam]
On Fri, 9 Nov 2007, Jakub Narebski wrote:
> Carlos Rica wrote:
>
> > + struct option options[] = {
> > + { OPTION_STRING, 'l', NULL, &list, "pattern", "list tag names",
> > + PARSE_OPT_OPTARG, NULL, (intptr_t) no_pattern },
>
> > + OPT_STRING('F', NULL, &msgfile, "file", "message in a file"),
>
> Does it matter that you use OPTION_STRING here and OPT_STRING macro there?
I guess it is because of the PARSE_OPT_OPTARG thing, together with
no_pattern. We need to know if -l was specified, even if no argument was
passed in.
Hth,
Dscho
^ permalink raw reply
* linux-2.6 clone with CygWin git
From: Medve Emilian @ 2007-11-09 14:29 UTC (permalink / raw)
To: git
Hello,
I noticed that something might not be right with my CygWin git (latest
CygWin relevant build packages + a few days old git build from the next
& master branches). When I clone, say, Linus' tree over the native git
protocol everything goes fine but a git-status shows this:
$ git-status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
#
# modified: include/linux/netfilter/xt_CONNMARK.h
# modified: include/linux/netfilter/xt_DSCP.h
# modified: include/linux/netfilter/xt_MARK.h
# modified: include/linux/netfilter/xt_TCPMSS.h
# modified: include/linux/netfilter_ipv4/ipt_CONNMARK.h
# modified: include/linux/netfilter_ipv4/ipt_DSCP.h
# modified: include/linux/netfilter_ipv4/ipt_ECN.h
# modified: include/linux/netfilter_ipv4/ipt_MARK.h
# modified: include/linux/netfilter_ipv4/ipt_TCPMSS.h
# modified: include/linux/netfilter_ipv4/ipt_TOS.h
# modified: include/linux/netfilter_ipv4/ipt_TTL.h
# modified: include/linux/netfilter_ipv6/ip6t_HL.h
# modified: include/linux/netfilter_ipv6/ip6t_MARK.h
# modified: net/ipv4/netfilter/ipt_ECN.c
# modified: net/ipv4/netfilter/ipt_TOS.c
# modified: net/ipv4/netfilter/ipt_TTL.c
# modified: net/ipv6/netfilter/ip6t_HL.c
# modified: net/netfilter/xt_CONNMARK.c
# modified: net/netfilter/xt_DSCP.c
# modified: net/netfilter/xt_MARK.c
# modified: net/netfilter/xt_TCPMSS.c
#
no changes added to commit (use "git add" and/or "git commit -a")
git-fsck --strict --full finds no fault in the clone, git-reset --hard
goes fine but changes nothing in the output of git-status. Some
additional superficial investigation showed that git-diff doesn't even
compare my checked out tree against the latest commit. Checkout of
various commits shows the same issue.
Can somebody please double-check this scenario for me just to validate
that this happens only due to some particular factors combination on my
box?
Thanks,
Emil.
^ permalink raw reply
* Re: [BUG] git-rebase fails when a commit message contains a diff
From: Steffen Prohaska @ 2007-11-09 14:29 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: Junio C Hamano, Jonas Fonseca, git
In-Reply-To: <Pine.LNX.4.64.0711091417500.4362@racer.site>
On Nov 9, 2007, at 3:18 PM, Johannes Schindelin wrote:
> Hi,
>
> On Fri, 9 Nov 2007, Steffen Prohaska wrote:
>
>> On Nov 9, 2007, at 2:51 AM, Junio C Hamano wrote:
>>
>>> Junio C Hamano <gitster@pobox.com> writes:
>>>
>>>> That's a known design limitation of applymbox/mailinfo. Any
>>>> line that looks like a beginning of a patch in e-mail ("^--- ",
>>>> "^---$", "^diff -", and "^Index: ") terminates the commit log.
>>>
>>> Ok, so that explains the symptom. What's the next step?
>>>
>>> * The applymbox/mailinfo pair should continue to split the
>>> commit log message at the first such line. There is no point
>>> breaking established workflow, and people in communities that
>>> exchange patches via e-mail already know to avoid this issue
>>> by indenting quoted diff snippet in the log message,
>>> e.g. 5be507fc.
>>
>> I wasn't aware of this.
>
> But there's a really easy workaround: use --merge with git rebase.
It's no longer a problem for me. I now know the limitation and
the work around. But others could get bitten, too. We could
save them.
Steffen
^ permalink raw reply
* fatal: serious inflate inconsistency
From: bob @ 2007-11-09 14:14 UTC (permalink / raw)
To: git
From: kranki@mac.com
Subject: fatal: serious inflate inconsistency
Date: November 8, 2007 10:56:02 PM EST
To: majordomo@vger.kernel.org
Hi, list.
Sorry, but I am not that familiar with git's internal workings,
but here is a failure that I can consistently create. I am
running MacOSX 10.4.10 with git compiled from source.
Here is the problem output that I am receiving:
apple07:~/rmwHtmlOld bob$ git version
git version 1.5.3.5
apple07:~/rmwHtmlOld bob$ git init
Initialized empty Git repository in .git/
apple07:~/rmwHtmlOld bob$ git add .
apple07:~/rmwHtmlOld bob$ git commit --all
Created initial commit 49b4183: Initial commit
10993 files changed, 3615639 insertions(+), 0 deletions(-)
create mode 100644 .gitignore
create mode 100755 bk.sh
.
.
.
create mode 100755 ter/webalizer/webalizer.hist
apple07:~/rmwHtmlOld bob$ cd ..
apple07:~ bob$ mkdir rmwHtml.git
apple07:~ bob$ cd rmwHtml.git/
apple07:~/rmwHtml.git bob$ git --bare init --share
usage: git-init [-q | --quiet] [--template=<template-directory>] [--
shared]
apple07:~/rmwHtml.git bob$ git --bare init --shared
Initialized empty shared Git repository in /Users/bob/rmwHtml.git/
apple07:~/rmwHtml.git bob$ git --bare fetch ../rmwHtmlOld master:master
warning: no common commits
remote: Generating pack...
remote: Done counting 11402 objects.
remote: Deltifying 11402 objects...
remote: 100% (11402/11402) done
Indexing 11402 objects...
100% (11402/11402) done
Resolving 3356 deltas...
fatal: serious inflate inconsistency
remote: Total 11402 (delta 3356), reused 0 (delta 0)
fatal: index-pack died with error code 128
fatal: Fetch failure: ../rmwHtmlOld
apple07:~/rmwHtml.git bob$
The ... represent about 11,000 files that I did not feel needed to be
included.
The total directory being put in the repository is about 4gig.
There are two files that are about 1.0gig each. I had them as one which
in MacOSX 10.4.10 showed as 1.88gig and think that this may be the
problem, but don't know why since my searches show that git should
handle files up to 2gig. If I am wrong and there is a lesser limit,
then
I apologize.
I have this directory, rmwHtmlOld, saved as a tarball and can recreate
the above as needed.
I apologize if I am doing something wrong that I am not aware of.
I use git for several different projects and have no problem with them.
I would appreciate any help that you can provide. Thank you for
your time.
^ permalink raw reply
* Re: [BUG] git-rebase fails when a commit message contains a diff
From: Johannes Schindelin @ 2007-11-09 14:19 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Jonas Fonseca, git
In-Reply-To: <7v1wb0xhxq.fsf@gitster.siamese.dyndns.org>
Hi,
On Thu, 8 Nov 2007, Junio C Hamano wrote:
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
> > On Thu, 8 Nov 2007, Junio C Hamano wrote:
> >
> >> I wonder if this is a sensible thing to do, regardless of the issue
> >> of commit log message that contains anything.
> >>
> >> The patch replaces git-rebase with git-rebase--interactive. The only
> >> difference from the existing "git-rebase -i" is if the command is
> >> called without "-i" the initial "here is the to-do list. please
> >> rearrange the lines, modify 'pick' to 'edit' or whatever as
> >> appropriate" step is done without letting the user edit the list.
> >
> > Hmm. I don't know, really. I had the impression that the "git
> > format-patch | git am" pipeline would be faster.
>
> Heh, I did not read rebase--interactive carefully enough.
>
> Unless told to use merge with "rebase -m", rebase replays the change by
> extracting and applying patches, and speed comparison was about that vs
> merge based replaying; I thought make_patch was done in order to avoid
> using cherry-pick (which is based on merge-recursive) and doing patch
> application with three-way fallback. Apparently that is not what
> "interactive" does.
>
> Perhaps pick_one () could be taught to perform the 3-way fallback dance
> git-am plays correctly. The patch I sent to make
> git-rebase--interactive take over git-rebase would then become quite
> reasonable, I would think.
I have a different idea: How about changing cherry-pick to try a simple
patch first? If that fails, we can always go back to merge-recursive (or
merge-nu once that is ready).
Ciao,
Dscho
^ permalink raw reply
* Re: [BUG] git-rebase fails when a commit message contains a diff
From: Johannes Schindelin @ 2007-11-09 14:18 UTC (permalink / raw)
To: Steffen Prohaska; +Cc: Junio C Hamano, Jonas Fonseca, git
In-Reply-To: <B2BAA0E1-8DA7-417D-AE25-53D8690810ED@zib.de>
Hi,
On Fri, 9 Nov 2007, Steffen Prohaska wrote:
> On Nov 9, 2007, at 2:51 AM, Junio C Hamano wrote:
>
> > Junio C Hamano <gitster@pobox.com> writes:
> >
> > > That's a known design limitation of applymbox/mailinfo. Any
> > > line that looks like a beginning of a patch in e-mail ("^--- ",
> > > "^---$", "^diff -", and "^Index: ") terminates the commit log.
> >
> > Ok, so that explains the symptom. What's the next step?
> >
> > * The applymbox/mailinfo pair should continue to split the
> > commit log message at the first such line. There is no point
> > breaking established workflow, and people in communities that
> > exchange patches via e-mail already know to avoid this issue
> > by indenting quoted diff snippet in the log message,
> > e.g. 5be507fc.
>
> I wasn't aware of this.
But there's a really easy workaround: use --merge with git rebase.
Ciao,
Dscho
^ permalink raw reply
* Re: cogito remote branch
From: Johannes Schindelin @ 2007-11-09 14:17 UTC (permalink / raw)
To: MichaelTiloDressel@t-online.de; +Cc: Andreas Ericsson, git
In-Reply-To: <1IqUGN-1XXOVs0@fwd33.aul.t-online.de>
Hi,
On Fri, 9 Nov 2007, MichaelTiloDressel@t-online.de wrote:
> Such a pity. We just got used to it.
It's open source. You are free to use/maintain it.
Ciao,
Dscho
^ permalink raw reply
* Re: [PATCH 1/2] Add strchrnul()
From: Andreas Ericsson @ 2007-11-09 13:59 UTC (permalink / raw)
To: Jakub Narebski; +Cc: René Scharfe, Junio C Hamano, Git Mailing List
In-Reply-To: <fh1o4o$jei$1@ger.gmane.org>
Jakub Narebski wrote:
> [Cc: Andreas Ericsson <ae@op5.se>,
> René Scharfe <rene.scharfe@lsrfire.ath.cx>,
> Junio C Hamano <gitster@pobox.com>,
> git@vger.kernel.org]
>
I'm not sure what's up with this, but I didn't see this email on git@vger,
so re-adding it to the Cc list now.
>
> Original patch lacked adding appropriate test to configure,
> i.e. something like below to configure.ac
>
> #
> # Define NO_STRCHRNUL if you don't have strchrnul.
> AC_CHECK_FUNC(strchrnul,
> [NO_STRCHRNUL=],
> [NO_STRCHRNUL=YesPlease])
> AC_SUBST(NO_STRCHRNUL)
>
> and the following line to config.mak.in
>
> NO_STRCHRNUL=@NO_STRCHRNUL@
>
>> This seems overly complicated. How about this instead?
> [...]
>> I'm fairly much against forcing people to know what library
>> functions they have in order to get software to compile
>> properly. This is, imo, a neater solution, and also inlines
>> the function as suggested by Dscho.
>
> Wouldn't it be better to add ./configure check instead? See above.
>
> Although I guess that people using ./configure to set compilation
> options (to generate config.mak.autogen) are minority...
>
Perhaps. I know I don't anyway, and now it's become standard not to
do so for a significant part of the git-tracking world.
>> +#if !defined(__GLIBC__) && !__GLIBC_PREREQ(2, 1)
>> +# define strchrnul(s, c) gitstrchrnul(s, c)
>> +static inline char *gitstrchrnul(const char *s, int c)
>> +{
>> + while (*s && *s != c)
>> + s++;
>> +
>> + return (char *)s;
>> +}
>> +#endif
>> +
>
> This is good solution, although I'm not sure about the check itself.
> What if somebody has libc which is not glibc, but it does have
> strchrnul?
>
They most likely fall into the minority that get to suffer from
using code that's as fast as what's in there today, although
a bit more readable. The glibc optimization is really only
worthwhile for architectures where strchrnul()-like operations
have microcode support, or when it's used on large strings.
YMMV. I suppose rewriting it as
#if defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 1)
# define HAVE_STRCHRNUL
#endif
#ifdef HAVE_STRCHRNUL
...
would work too, and will provide an easier way out for other fellas
wanting to say "Hey, my favourite solaris libc has this too!". OTOH,
that rewrite can be done when the first such case appears.
>> diff --git a/builtin-fetch--tool.c b/builtin-fetch--tool.c
>
> This IMHO should go to separate patch.
>
*shrug* Rene had it in his. Monkey see monkey do ;-)
--
Andreas Ericsson andreas.ericsson@op5.se
OP5 AB www.op5.se
Tel: +46 8-230225 Fax: +46 8-230231
^ permalink raw reply
* Re: [PATCH] Make builtin-tag.c use parse_options.
From: Jakub Narebski @ 2007-11-09 13:57 UTC (permalink / raw)
To: git
In-Reply-To: <473463E0.7000406@gmail.com>
Carlos Rica wrote:
> + struct option options[] = {
> + { OPTION_STRING, 'l', NULL, &list, "pattern", "list tag names",
> + PARSE_OPT_OPTARG, NULL, (intptr_t) no_pattern },
> + OPT_STRING('F', NULL, &msgfile, "file", "message in a file"),
Does it matter that you use OPTION_STRING here and OPT_STRING macro there?
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
^ permalink raw reply
* Re: cogito remote branch
From: MichaelTiloDressel @ 2007-11-09 13:51 UTC (permalink / raw)
To: Andreas Ericsson; +Cc: git
In-Reply-To: <47345E85.8090702@op5.se>
Such a pity. We just got used to it.
-----Original Message-----
Date: Fri, 09 Nov 2007 14:20:05 +0100
Subject: Re: cogito remote branch
From: Andreas Ericsson
To: "MichaelTiloDressel@t-online.de"
MichaelTiloDressel@t-online.de wrote:
> Hi,
>
> I just saw the scripts cg-update, cg-push .. scripts try to guess a
> branch name functioning as origin if no argument is given. These
scripts
> seam to use a branch named -origin if it exists and the
> current
> branch is named and is not the branch named master.
>
> I like that feature. Is it anywhere documented?
>
> In case there is no branch named -origin the scripts just
> use origin even if the current branch is not master. I would prefer
the
> scripts to fail in this case and to print a message asking the user to
> specifically name a branch.
>
Cogito is deprecated, and has been for quite some time. The "remote"
feature of core git (inspired by cogito) offers similar benefits.
--
Andreas Ericsson andreas.ericsson@op5.se
OP5 AB www.op5.se
Tel: +46 8-230225 Fax: +46 8-230231
^ permalink raw reply
* Re: corrupt object on git-gc
From: Andreas Ericsson @ 2007-11-09 13:46 UTC (permalink / raw)
To: Yossi Leybovich; +Cc: git, Yossi Leybovich
In-Reply-To: <4fe79b4b0711090538wf483ce7j89c518962e89780e@mail.gmail.com>
Yossi Leybovich wrote:
> Yossi Leybovich wrote:
>>> Hi
>>>
>>> I know its loose but still I think there are references in the
>>> repository to this object.
>>> How I can remove it from the repository ?
>>>
>
>> That was not a very good idea. You just moved ALL objects whose hash
>> begin with 4b out of the object database.
>
>> Try only moving the offending file out of the 4b directory.
>
> Did not help still the repository look for this object?
> Any one know how can I track this object and understand which file is it
>
Is this a super-secret project or you can make a tarball of the .git
directory and send it to me? Trying to track down the cause through
email is decidedly slow.
>
>
> ib]$ mv .git/objects/4b/9458b3786228369c63936db65827de3cc06200 ../
>
> ib]$ git-fsck --full
> dangling commit 0d43a63623237385e432572bf61171713dcd8e98
> dangling commit 4fc6b1127e4a7f4ff5b65a2dd8a90779b5aff3e0
> dangling commit 7da607374fe2b1ae09228d2035dd608c73dad7c8
> dangling commit 004ef09ae022c60a30f9cd61f90d18df5db3628e
> dangling commit 85112c6fabb6b8913ab244a8645d67380616eba6
> broken link from tree 2d9263c6d23595e7cb2a21e5ebbb53655278dff8
> to blob 4b9458b3786228369c63936db65827de3cc06200
One tree uses the object. I'm not sure if any commit-objects
use the tree. Try
for b in $(git branch --no-color -a | cut -b3-); do
for rev in $(git rev-list HEAD); do
git ls-tree -r $rev | grep -q 2d9263c6d23595e7cb2a21e5ebbb53655278dff8
test $? -eq 0 && echo $rev && break
done
done
If it turns up empty, you *should* be able to safely delete
2d9263c6d23595e7cb2a21e5ebbb53655278dff8 and
4b9458b3786228369c63936db65827de3cc06200
Make sure to take a backup first though.
--
Andreas Ericsson andreas.ericsson@op5.se
OP5 AB www.op5.se
Tel: +46 8-230225 Fax: +46 8-230231
^ permalink raw reply
* Re: [PATCH 3/9] msm: timer support using the GPT and DGT timers
From: Brian Swetland @ 2007-11-09 13:39 UTC (permalink / raw)
To: Uwe Kleine-König, linux-arm-kernel, git
In-Reply-To: <20071109131930.GA19343@bre-cln-ukleine.digi.com>
[-- Attachment #1: Type: text/plain, Size: 1139 bytes --]
[Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>]
>
> Hello Brian,
>
> [adding git ML to Cc:]
>
> > > Content-Type: text/plain; charset=utf-8
> > > Content-Transfer-Encoding: 8bit
> >
> > Mine do not seem to.
> I think they are only generated if the content contains non-ASCII. So
> the attached example isn't very helpful.
Looking at more of the patches (sorry about sending one not exhibiting
the problem -- I picked a small one, forgetting that not all of them
had Arve's name as the author), it looks like the body is plain 7bit
ascii, but the From header has the utf-8 content:
>From 0ac8027053bb686c19a412f0f22f4a305a77ab59 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?= <arve@android.com>
Date: Wed, 7 Nov 2007 22:17:29 -0800
Subject: [PATCH 3/9] msm: timer support using the GPT and DGT timers
When sent with git-send-email, the From: line above ended up in the
message, unescaped as utf-8 text, but the generated email itself did
not have any encoding specified. I didn't
Attached is the original patch and the message that resulted when I
used git-send-email to mail the patch to myself.
Brian
[-- Attachment #2: 0003-msm-timer-support-using-the-GPT-and-DGT-timers.patch --]
[-- Type: text/x-diff, Size: 6751 bytes --]
>From 0ac8027053bb686c19a412f0f22f4a305a77ab59 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?= <arve@android.com>
Date: Wed, 7 Nov 2007 22:17:29 -0800
Subject: [PATCH 3/9] msm: timer support using the GPT and DGT timers
Signed-off-by: Brian Swetland <swetland@android.com>
---
arch/arm/mach-msm/timer.c | 205 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 205 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/mach-msm/timer.c
diff --git a/arch/arm/mach-msm/timer.c b/arch/arm/mach-msm/timer.c
new file mode 100644
index 0000000..0781a16
--- /dev/null
+++ b/arch/arm/mach-msm/timer.c
@@ -0,0 +1,205 @@
+/* linux/arch/arm/mach-msm/timer.c
+**
+** Copyright (C) 2007 Google, Inc.
+**
+** This software is licensed under the terms of the GNU General Public
+** License version 2, as published by the Free Software Foundation, and
+** may be copied, distributed, and modified under those terms.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+*/
+
+#include <linux/init.h>
+#include <linux/time.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/clk.h>
+#include <linux/clockchips.h>
+#include <linux/delay.h>
+
+#include <asm/mach/time.h>
+#include <asm/arch/msm_iomap.h>
+
+#include <asm/io.h>
+
+#define MSM_DGT_BASE (MSM_GPT_BASE + 0x10)
+#define MSM_DGT_SHIFT (5)
+
+#define TIMER_MATCH_VAL 0x0000
+#define TIMER_COUNT_VAL 0x0004
+#define TIMER_ENABLE 0x0008
+#define TIMER_ENABLE_CLR_ON_MATCH_EN 2
+#define TIMER_ENABLE_EN 1
+#define TIMER_CLEAR 0x000C
+
+#define CSR_PROTECTION 0x0020
+#define CSR_PROTECTION_EN 1
+
+#define GPT_HZ 32768
+#define DGT_HZ 19200000 // 19.2 MHz or 600 KHz after shift
+
+struct msm_clock {
+ struct clock_event_device clockevent;
+ struct clocksource clocksource;
+ struct irqaction irq;
+ uint32_t regbase;
+ uint32_t freq;
+ uint32_t shift;
+};
+
+static irqreturn_t msm_timer_interrupt(int irq, void *dev_id)
+{
+ struct clock_event_device *evt = dev_id;
+ evt->event_handler(evt);
+ return IRQ_HANDLED;
+}
+
+static cycle_t msm_gpt_read(void)
+{
+ return msm_readl(MSM_GPT_BASE + TIMER_COUNT_VAL);
+}
+
+static cycle_t msm_dgt_read(void)
+{
+ return msm_readl(MSM_DGT_BASE + TIMER_COUNT_VAL) >> MSM_DGT_SHIFT;
+}
+
+static int msm_timer_set_next_event(unsigned long cycles,
+ struct clock_event_device *evt)
+{
+ struct msm_clock *clock = container_of(evt, struct msm_clock, clockevent);
+ uint32_t now = msm_readl(clock->regbase + TIMER_COUNT_VAL);
+ uint32_t alarm = now + (cycles << clock->shift);
+ int late;
+
+ msm_writel(alarm, clock->regbase + TIMER_MATCH_VAL);
+ now = msm_readl(clock->regbase + TIMER_COUNT_VAL);
+ late = now - alarm;
+ if(late >= (-2 << clock->shift) && late < DGT_HZ*5) {
+ printk(KERN_NOTICE "msm_timer_set_next_event(%lu) clock %s, "
+ "alarm already expired, now %x, alarm %x, late %d\n",
+ cycles, clock->clockevent.name, now, alarm, late);
+ return -ETIME;
+ }
+ return 0;
+}
+
+static void msm_timer_set_mode(enum clock_event_mode mode,
+ struct clock_event_device *evt)
+{
+ struct msm_clock *clock = container_of(evt, struct msm_clock, clockevent);
+ switch (mode) {
+ case CLOCK_EVT_MODE_RESUME:
+ case CLOCK_EVT_MODE_PERIODIC:
+ break;
+ case CLOCK_EVT_MODE_ONESHOT:
+ msm_writel(TIMER_ENABLE_EN, clock->regbase + TIMER_ENABLE);
+ break;
+ case CLOCK_EVT_MODE_UNUSED:
+ case CLOCK_EVT_MODE_SHUTDOWN:
+ msm_writel(0, clock->regbase + TIMER_ENABLE);
+ break;
+ }
+}
+
+static struct msm_clock msm_clocks[] = {
+ {
+ .clockevent = {
+ .name = "gp_timer",
+ .features = CLOCK_EVT_FEAT_ONESHOT,
+ .shift = 32,
+ .rating = 200,
+ .set_next_event = msm_timer_set_next_event,
+ .set_mode = msm_timer_set_mode,
+ },
+ .clocksource = {
+ .name = "gp_timer",
+ .rating = 200,
+ .read = msm_gpt_read,
+ .mask = CLOCKSOURCE_MASK(32),
+ .shift = 24,
+ .flags = CLOCK_SOURCE_IS_CONTINUOUS,
+ },
+ .irq = {
+ .name = "gp_timer",
+ .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_TRIGGER_RISING,
+ .handler = msm_timer_interrupt,
+ .dev_id = &msm_clocks[0].clockevent,
+ .irq = INT_GP_TIMER_EXP
+ },
+ .regbase = MSM_GPT_BASE,
+ .freq = GPT_HZ
+ },
+ {
+ .clockevent = {
+ .name = "dg_timer",
+ .features = CLOCK_EVT_FEAT_ONESHOT,
+ .shift = 32 + MSM_DGT_SHIFT,
+ .rating = 300,
+ .set_next_event = msm_timer_set_next_event,
+ .set_mode = msm_timer_set_mode,
+ },
+ .clocksource = {
+ .name = "dg_timer",
+ .rating = 300,
+ .read = msm_dgt_read,
+ .mask = CLOCKSOURCE_MASK((32 - MSM_DGT_SHIFT)),
+ .shift = 24 - MSM_DGT_SHIFT,
+ .flags = CLOCK_SOURCE_IS_CONTINUOUS,
+ },
+ .irq = {
+ .name = "dg_timer",
+ .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_TRIGGER_RISING,
+ .handler = msm_timer_interrupt,
+ .dev_id = &msm_clocks[1].clockevent,
+ .irq = INT_DEBUG_TIMER_EXP
+ },
+ .regbase = MSM_DGT_BASE,
+ .freq = DGT_HZ >> MSM_DGT_SHIFT,
+ .shift = MSM_DGT_SHIFT
+ }
+};
+
+static void /*__init*/ msm_timer_init(void)
+{
+ int i;
+ int res;
+ printk("msm_timer_init()\n");
+
+ for(i = 0; i < ARRAY_SIZE(msm_clocks); i++) {
+ struct msm_clock *clock = &msm_clocks[i];
+ struct clock_event_device *ce = &clock->clockevent;
+ struct clocksource *cs = &clock->clocksource;
+ msm_writel(0, clock->regbase + TIMER_ENABLE);
+ msm_writel(0, clock->regbase + TIMER_CLEAR);
+ msm_writel(~0, clock->regbase + TIMER_MATCH_VAL);
+
+ ce->mult = div_sc(clock->freq, NSEC_PER_SEC, ce->shift);
+ // allow at least 10 seconds to notice that the timer wrapped
+ ce->max_delta_ns =
+ clockevent_delta2ns(0xf0000000 >> clock->shift, ce);
+ ce->min_delta_ns = clockevent_delta2ns(4, ce); // 4 gets rounded down to 3
+ ce->cpumask = cpumask_of_cpu(0);
+
+ cs->mult = clocksource_hz2mult(clock->freq,cs->shift);
+ res = clocksource_register(cs);
+ if(res)
+ printk(KERN_ERR "msm_timer_init: clocksource_register "
+ "failed for %s\n", cs->name);
+
+ res = setup_irq(clock->irq.irq, &clock->irq);
+ if(res)
+ printk(KERN_ERR "msm_timer_init: setup_irq "
+ "failed for %s\n", cs->name);
+
+ clockevents_register_device(ce);
+ }
+}
+
+struct sys_timer msm_timer = {
+ .init = msm_timer_init
+};
--
1.5.3.1
[-- Attachment #3: 0mail --]
[-- Type: text/plain, Size: 7874 bytes --]
>From swetland@google.com Fri Nov 9 05:35:00 2007
Return-Path: <swetland@google.com>
Received: from wpck26.suw.corp.google.com [172.24.219.218]
by bulgaria with IMAP (fetchmail-6.3.6)
for <swetland@localhost> (single-drop); Fri, 09 Nov 2007 05:35:00 -0800 (PST)
Received: from wpck26.suw.corp.google.com ([unix socket])
by imap4.corp.google.com (Cyrus v2.2.12-Invoca-RPM-2.2.12-1gg2) with LMTPA;
Fri, 09 Nov 2007 05:35:04 -0800
X-Sieve: CMU Sieve 2.2
Received: from zps35.corp.google.com (zps35.corp.google.com [172.25.146.35])
by wpck26.suw.corp.google.com with ESMTP id lA9DZ4Ou025468
for <swetland@wpck26.suw.corp.google.com>; Fri, 9 Nov 2007 05:35:04 -0800
Received: from bulgaria (bulgaria.corp.google.com [172.18.102.38])
by zps35.corp.google.com with ESMTP id lA9DYufb029971;
Fri, 9 Nov 2007 05:34:56 -0800
Received: by bulgaria (Postfix, from userid 1000)
id 5618E8F45E; Fri, 9 Nov 2007 05:34:46 -0800 (PST)
From: swetland@google.com
To: swetland@google.com
Cc: =?utf-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?= <arve@android.com>,
Brian Swetland <swetland@android.com>
Subject: [PATCH 3/9] msm: timer support using the GPT and DGT timers
Date: Fri, 9 Nov 2007 05:34:46 -0800
Message-Id: <11946152862759-git-send-email-swetland@frotz.net>
X-Mailer: git-send-email 1.5.3.1
Status: RO
Content-Length: 6551
From: Arve Hjønnevåg <arve@android.com>
Signed-off-by: Brian Swetland <swetland@android.com>
---
arch/arm/mach-msm/timer.c | 205 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 205 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/mach-msm/timer.c
diff --git a/arch/arm/mach-msm/timer.c b/arch/arm/mach-msm/timer.c
new file mode 100644
index 0000000..0781a16
--- /dev/null
+++ b/arch/arm/mach-msm/timer.c
@@ -0,0 +1,205 @@
+/* linux/arch/arm/mach-msm/timer.c
+**
+** Copyright (C) 2007 Google, Inc.
+**
+** This software is licensed under the terms of the GNU General Public
+** License version 2, as published by the Free Software Foundation, and
+** may be copied, distributed, and modified under those terms.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+*/
+
+#include <linux/init.h>
+#include <linux/time.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/clk.h>
+#include <linux/clockchips.h>
+#include <linux/delay.h>
+
+#include <asm/mach/time.h>
+#include <asm/arch/msm_iomap.h>
+
+#include <asm/io.h>
+
+#define MSM_DGT_BASE (MSM_GPT_BASE + 0x10)
+#define MSM_DGT_SHIFT (5)
+
+#define TIMER_MATCH_VAL 0x0000
+#define TIMER_COUNT_VAL 0x0004
+#define TIMER_ENABLE 0x0008
+#define TIMER_ENABLE_CLR_ON_MATCH_EN 2
+#define TIMER_ENABLE_EN 1
+#define TIMER_CLEAR 0x000C
+
+#define CSR_PROTECTION 0x0020
+#define CSR_PROTECTION_EN 1
+
+#define GPT_HZ 32768
+#define DGT_HZ 19200000 // 19.2 MHz or 600 KHz after shift
+
+struct msm_clock {
+ struct clock_event_device clockevent;
+ struct clocksource clocksource;
+ struct irqaction irq;
+ uint32_t regbase;
+ uint32_t freq;
+ uint32_t shift;
+};
+
+static irqreturn_t msm_timer_interrupt(int irq, void *dev_id)
+{
+ struct clock_event_device *evt = dev_id;
+ evt->event_handler(evt);
+ return IRQ_HANDLED;
+}
+
+static cycle_t msm_gpt_read(void)
+{
+ return msm_readl(MSM_GPT_BASE + TIMER_COUNT_VAL);
+}
+
+static cycle_t msm_dgt_read(void)
+{
+ return msm_readl(MSM_DGT_BASE + TIMER_COUNT_VAL) >> MSM_DGT_SHIFT;
+}
+
+static int msm_timer_set_next_event(unsigned long cycles,
+ struct clock_event_device *evt)
+{
+ struct msm_clock *clock = container_of(evt, struct msm_clock, clockevent);
+ uint32_t now = msm_readl(clock->regbase + TIMER_COUNT_VAL);
+ uint32_t alarm = now + (cycles << clock->shift);
+ int late;
+
+ msm_writel(alarm, clock->regbase + TIMER_MATCH_VAL);
+ now = msm_readl(clock->regbase + TIMER_COUNT_VAL);
+ late = now - alarm;
+ if(late >= (-2 << clock->shift) && late < DGT_HZ*5) {
+ printk(KERN_NOTICE "msm_timer_set_next_event(%lu) clock %s, "
+ "alarm already expired, now %x, alarm %x, late %d\n",
+ cycles, clock->clockevent.name, now, alarm, late);
+ return -ETIME;
+ }
+ return 0;
+}
+
+static void msm_timer_set_mode(enum clock_event_mode mode,
+ struct clock_event_device *evt)
+{
+ struct msm_clock *clock = container_of(evt, struct msm_clock, clockevent);
+ switch (mode) {
+ case CLOCK_EVT_MODE_RESUME:
+ case CLOCK_EVT_MODE_PERIODIC:
+ break;
+ case CLOCK_EVT_MODE_ONESHOT:
+ msm_writel(TIMER_ENABLE_EN, clock->regbase + TIMER_ENABLE);
+ break;
+ case CLOCK_EVT_MODE_UNUSED:
+ case CLOCK_EVT_MODE_SHUTDOWN:
+ msm_writel(0, clock->regbase + TIMER_ENABLE);
+ break;
+ }
+}
+
+static struct msm_clock msm_clocks[] = {
+ {
+ .clockevent = {
+ .name = "gp_timer",
+ .features = CLOCK_EVT_FEAT_ONESHOT,
+ .shift = 32,
+ .rating = 200,
+ .set_next_event = msm_timer_set_next_event,
+ .set_mode = msm_timer_set_mode,
+ },
+ .clocksource = {
+ .name = "gp_timer",
+ .rating = 200,
+ .read = msm_gpt_read,
+ .mask = CLOCKSOURCE_MASK(32),
+ .shift = 24,
+ .flags = CLOCK_SOURCE_IS_CONTINUOUS,
+ },
+ .irq = {
+ .name = "gp_timer",
+ .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_TRIGGER_RISING,
+ .handler = msm_timer_interrupt,
+ .dev_id = &msm_clocks[0].clockevent,
+ .irq = INT_GP_TIMER_EXP
+ },
+ .regbase = MSM_GPT_BASE,
+ .freq = GPT_HZ
+ },
+ {
+ .clockevent = {
+ .name = "dg_timer",
+ .features = CLOCK_EVT_FEAT_ONESHOT,
+ .shift = 32 + MSM_DGT_SHIFT,
+ .rating = 300,
+ .set_next_event = msm_timer_set_next_event,
+ .set_mode = msm_timer_set_mode,
+ },
+ .clocksource = {
+ .name = "dg_timer",
+ .rating = 300,
+ .read = msm_dgt_read,
+ .mask = CLOCKSOURCE_MASK((32 - MSM_DGT_SHIFT)),
+ .shift = 24 - MSM_DGT_SHIFT,
+ .flags = CLOCK_SOURCE_IS_CONTINUOUS,
+ },
+ .irq = {
+ .name = "dg_timer",
+ .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_TRIGGER_RISING,
+ .handler = msm_timer_interrupt,
+ .dev_id = &msm_clocks[1].clockevent,
+ .irq = INT_DEBUG_TIMER_EXP
+ },
+ .regbase = MSM_DGT_BASE,
+ .freq = DGT_HZ >> MSM_DGT_SHIFT,
+ .shift = MSM_DGT_SHIFT
+ }
+};
+
+static void /*__init*/ msm_timer_init(void)
+{
+ int i;
+ int res;
+ printk("msm_timer_init()\n");
+
+ for(i = 0; i < ARRAY_SIZE(msm_clocks); i++) {
+ struct msm_clock *clock = &msm_clocks[i];
+ struct clock_event_device *ce = &clock->clockevent;
+ struct clocksource *cs = &clock->clocksource;
+ msm_writel(0, clock->regbase + TIMER_ENABLE);
+ msm_writel(0, clock->regbase + TIMER_CLEAR);
+ msm_writel(~0, clock->regbase + TIMER_MATCH_VAL);
+
+ ce->mult = div_sc(clock->freq, NSEC_PER_SEC, ce->shift);
+ // allow at least 10 seconds to notice that the timer wrapped
+ ce->max_delta_ns =
+ clockevent_delta2ns(0xf0000000 >> clock->shift, ce);
+ ce->min_delta_ns = clockevent_delta2ns(4, ce); // 4 gets rounded down to 3
+ ce->cpumask = cpumask_of_cpu(0);
+
+ cs->mult = clocksource_hz2mult(clock->freq,cs->shift);
+ res = clocksource_register(cs);
+ if(res)
+ printk(KERN_ERR "msm_timer_init: clocksource_register "
+ "failed for %s\n", cs->name);
+
+ res = setup_irq(clock->irq.irq, &clock->irq);
+ if(res)
+ printk(KERN_ERR "msm_timer_init: setup_irq "
+ "failed for %s\n", cs->name);
+
+ clockevents_register_device(ce);
+ }
+}
+
+struct sys_timer msm_timer = {
+ .init = msm_timer_init
+};
--
1.5.3.1
^ permalink raw reply related
* [PATCH] Make builtin-tag.c use parse_options.
From: Carlos Rica @ 2007-11-09 13:42 UTC (permalink / raw)
To: git, Junio C Hamano
Also, this removes those tests ensuring that repeated
-m options don't allocate memory more than once, because now
this is done after parsing options, using the last one
when more are given. The same for -F.
Signed-off-by: Carlos Rica <jasampler@gmail.com>
---
Applied to "next".
Comments welcomed.
builtin-tag.c | 141 ++++++++++++++++++++++++--------------------------------
t/t7004-tag.sh | 8 +---
2 files changed, 61 insertions(+), 88 deletions(-)
diff --git a/builtin-tag.c b/builtin-tag.c
index 66e5a58..5af1950 100644
--- a/builtin-tag.c
+++ b/builtin-tag.c
@@ -11,9 +11,15 @@
#include "refs.h"
#include "tag.h"
#include "run-command.h"
-
-static const char builtin_tag_usage[] =
- "git-tag [-n [<num>]] -l [<pattern>] | [-a | -s | -u <key-id>] [-f | -d | -v] [-m <msg> | -F <file>] <tagname> [<head>]";
+#include "parse-options.h"
+
+static const char * const git_tag_usage[] = {
+ "git-tag [-a|-s|-u <key-id>] [-f] [-m <msg>|-F <file>] <tagname> [<head>]",
+ "git-tag -d <tagname>...",
+ "git-tag [-n [<num>]] -l [<pattern>]",
+ "git-tag -v <tagname>...",
+ NULL
+};
static char signingkey[1000];
@@ -308,101 +314,74 @@ int cmd_tag(int argc, const char **argv, const char *prefix)
{
struct strbuf buf;
unsigned char object[20], prev[20];
- int annotate = 0, sign = 0, force = 0, lines = 0, message = 0;
char ref[PATH_MAX];
const char *object_ref, *tag;
- int i;
struct ref_lock *lock;
+ int annotate = 0, sign = 0, force = 0, lines = 0,
+ delete = 0, verify = 0;
+ char *list = NULL, *msg = NULL, *msgfile = NULL, *keyid = NULL;
+ const char *no_pattern = "NO_PATTERN";
+ struct option options[] = {
+ { OPTION_STRING, 'l', NULL, &list, "pattern", "list tag names",
+ PARSE_OPT_OPTARG, NULL, (intptr_t) no_pattern },
+ { OPTION_INTEGER, 'n', NULL, &lines, NULL,
+ "print n lines of each tag message",
+ PARSE_OPT_OPTARG, NULL, 1 },
+ OPT_BOOLEAN('d', NULL, &delete, "delete tags"),
+ OPT_BOOLEAN('v', NULL, &verify, "verify tags"),
+
+ OPT_GROUP("Tag creation options"),
+ OPT_BOOLEAN('a', NULL, &annotate,
+ "annotated tag, needs a message"),
+ OPT_STRING('m', NULL, &msg, "msg", "message for the tag"),
+ OPT_STRING('F', NULL, &msgfile, "file", "message in a file"),
+ OPT_BOOLEAN('s', NULL, &sign, "annotated and GPG-signed tag"),
+ OPT_STRING('u', NULL, &keyid, "key-id",
+ "use another key to sign the tag"),
+ OPT_BOOLEAN('f', NULL, &force, "replace the tag if exists"),
+ OPT_END()
+ };
+
git_config(git_tag_config);
- strbuf_init(&buf, 0);
- for (i = 1; i < argc; i++) {
- const char *arg = argv[i];
+ argc = parse_options(argc, argv, options, git_tag_usage, 0);
- if (arg[0] != '-')
- break;
- if (!strcmp(arg, "-a")) {
- annotate = 1;
- continue;
- }
- if (!strcmp(arg, "-s")) {
- annotate = 1;
- sign = 1;
- continue;
- }
- if (!strcmp(arg, "-f")) {
- force = 1;
- continue;
- }
- if (!strcmp(arg, "-n")) {
- if (i + 1 == argc || *argv[i + 1] == '-')
- /* no argument */
- lines = 1;
- else
- lines = isdigit(*argv[++i]) ?
- atoi(argv[i]) : 1;
- continue;
- }
- if (!strcmp(arg, "-m")) {
- annotate = 1;
- i++;
- if (i == argc)
- die("option -m needs an argument.");
- if (message)
- die("only one -F or -m option is allowed.");
- strbuf_addstr(&buf, argv[i]);
- message = 1;
- continue;
- }
- if (!strcmp(arg, "-F")) {
- annotate = 1;
- i++;
- if (i == argc)
- die("option -F needs an argument.");
- if (message)
- die("only one -F or -m option is allowed.");
-
- if (!strcmp(argv[i], "-")) {
+ if (list)
+ return list_tags(list == no_pattern ? NULL : list, lines);
+ if (delete)
+ return for_each_tag_name(argv, delete_tag);
+ if (verify)
+ return for_each_tag_name(argv, verify_tag);
+
+ strbuf_init(&buf, 0);
+ if (msg || msgfile) {
+ if (msg && msgfile)
+ die("only one -F or -m option is allowed.");
+ annotate = 1;
+ if (msg)
+ strbuf_addstr(&buf, msg);
+ else {
+ if (!strcmp(msgfile, "-")) {
if (strbuf_read(&buf, 0, 1024) < 0)
- die("cannot read %s", argv[i]);
+ die("cannot read %s", msgfile);
} else {
- if (strbuf_read_file(&buf, argv[i], 1024) < 0)
+ if (strbuf_read_file(&buf, msgfile, 1024) < 0)
die("could not open or read '%s': %s",
- argv[i], strerror(errno));
+ msgfile, strerror(errno));
}
- message = 1;
- continue;
- }
- if (!strcmp(arg, "-u")) {
- annotate = 1;
- sign = 1;
- i++;
- if (i == argc)
- die("option -u needs an argument.");
- if (strlcpy(signingkey, argv[i], sizeof(signingkey))
- >= sizeof(signingkey))
- die("argument to option -u too long");
- continue;
}
- if (!strcmp(arg, "-l"))
- return list_tags(argv[i + 1], lines);
- if (!strcmp(arg, "-d"))
- return for_each_tag_name(argv + i + 1, delete_tag);
- if (!strcmp(arg, "-v"))
- return for_each_tag_name(argv + i + 1, verify_tag);
- usage(builtin_tag_usage);
}
- if (i == argc) {
+ if (argc == 0) {
if (annotate)
- usage(builtin_tag_usage);
+ usage_with_options(git_tag_usage, options);
return list_tags(NULL, lines);
}
- tag = argv[i++];
+ tag = argv[0];
- object_ref = i < argc ? argv[i] : "HEAD";
- if (i + 1 < argc)
+ object_ref = argc == 2 ? argv[1] : "HEAD";
+ if (argc > 2)
die("too many params");
if (get_sha1(object_ref, object))
@@ -419,7 +398,7 @@ int cmd_tag(int argc, const char **argv, const char *prefix)
die("tag '%s' already exists", tag);
if (annotate)
- create_tag(object, tag, &buf, message, sign, object);
+ create_tag(object, tag, &buf, msg || msgfile, sign, object);
lock = lock_any_ref_for_update(ref, prev, 0);
if (!lock)
diff --git a/t/t7004-tag.sh b/t/t7004-tag.sh
index 0d07bc3..4b09d28 100755
--- a/t/t7004-tag.sh
+++ b/t/t7004-tag.sh
@@ -339,20 +339,14 @@ test_expect_success \
'
test_expect_success \
- 'trying to create tags giving many -m or -F options should fail' '
+ 'trying to create tags giving both -m or -F options should fail' '
echo "message file 1" >msgfile1 &&
echo "message file 2" >msgfile2 &&
! tag_exists msgtag &&
- ! git-tag -m "message 1" -m "message 2" msgtag &&
- ! tag_exists msgtag &&
- ! git-tag -F msgfile1 -F msgfile2 msgtag &&
- ! tag_exists msgtag &&
! git-tag -m "message 1" -F msgfile1 msgtag &&
! tag_exists msgtag &&
! git-tag -F msgfile1 -m "message 1" msgtag &&
! tag_exists msgtag &&
- ! git-tag -F msgfile1 -m "message 1" -F msgfile2 msgtag &&
- ! tag_exists msgtag &&
! git-tag -m "message 1" -F msgfile1 -m "message 2" msgtag &&
! tag_exists msgtag
'
--
1.5.3.4
^ permalink raw reply related
* Re: [PATCH 1/2] Add strchrnul()
From: Jakub Narebski @ 2007-11-09 13:42 UTC (permalink / raw)
To: git
In-Reply-To: <473434ED.50002@op5.se>
[Cc: Andreas Ericsson <ae@op5.se>,
René Scharfe <rene.scharfe@lsrfire.ath.cx>,
Junio C Hamano <gitster@pobox.com>,
git@vger.kernel.org]
Andreas Ericsson wrote:
> René Scharfe wrote:
>> As suggested by Pierre Habouzit, add strchrnul(). It's a useful GNU
>> extension and can simplify string parser code. There are several
>> places in git that can be converted to strchrnul(); as a trivial
>> example, this patch introduces its usage to builtin-fetch--tool.c.
>>
>> Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
>> ---
>>
>> Makefile | 13 +++++++++++++
>> builtin-fetch--tool.c | 8 ++------
>> compat/strchrnul.c | 8 ++++++++
>> git-compat-util.h | 5 +++++
>> 4 files changed, 28 insertions(+), 6 deletions(-)
>>
>> diff --git a/Makefile b/Makefile
>> index 0d5590f..578c999 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -30,6 +30,8 @@ all::
>> #
>> # Define NO_MEMMEM if you don't have memmem.
>> #
>> +# Define NO_STRCHRNUL if you don't have strchrnul.
>> +#
Original patch lacked adding appropriate test to configure,
i.e. something like below to configure.ac
#
# Define NO_STRCHRNUL if you don't have strchrnul.
AC_CHECK_FUNC(strchrnul,
[NO_STRCHRNUL=],
[NO_STRCHRNUL=YesPlease])
AC_SUBST(NO_STRCHRNUL)
and the following line to config.mak.in
NO_STRCHRNUL=@NO_STRCHRNUL@
> This seems overly complicated. How about this instead?
[...]
> I'm fairly much against forcing people to know what library
> functions they have in order to get software to compile
> properly. This is, imo, a neater solution, and also inlines
> the function as suggested by Dscho.
Wouldn't it be better to add ./configure check instead? See above.
Although I guess that people using ./configure to set compilation
options (to generate config.mak.autogen) are minority...
> +#if !defined(__GLIBC__) && !__GLIBC_PREREQ(2, 1)
> +# define strchrnul(s, c) gitstrchrnul(s, c)
> +static inline char *gitstrchrnul(const char *s, int c)
> +{
> + while (*s && *s != c)
> + s++;
> +
> + return (char *)s;
> +}
> +#endif
> +
This is good solution, although I'm not sure about the check itself.
What if somebody has libc which is not glibc, but it does have
strchrnul?
> diff --git a/builtin-fetch--tool.c b/builtin-fetch--tool.c
> index 6a78517..ed60847 100644
> --- a/builtin-fetch--tool.c
> +++ b/builtin-fetch--tool.c
> @@ -435,9 +435,7 @@ static int pick_rref(int sha1_only, const char *rref, const char *ls_remote_resu
> cp++;
> if (!*cp)
> break;
> - np = strchr(cp, '\n');
> - if (!np)
> - np = cp + strlen(cp);
> + np = strchrnul(cp, '\n');
> if (pass) {
> lrr_list[i].line = cp;
> lrr_list[i].name = cp + 41;
> @@ -461,9 +459,7 @@ static int pick_rref(int sha1_only, const char *rref, const char *ls_remote_resu
> rref++;
> if (!*rref)
> break;
> - next = strchr(rref, '\n');
> - if (!next)
> - next = rref + strlen(rref);
> + next = strchrnul(rref, '\n');
> rreflen = next - rref;
>
> for (i = 0; i < lrr_count; i++) {
This IMHO should go to separate patch.
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
^ permalink raw reply
* Re: corrupt object on git-gc
From: Yossi Leybovich @ 2007-11-09 13:38 UTC (permalink / raw)
To: git, ae, Yossi Leybovich
Yossi Leybovich wrote:
>> Hi
>>
>> I know its loose but still I think there are references in the
>> repository to this object.
>> How I can remove it from the repository ?
>>
>That was not a very good idea. You just moved ALL objects whose hash
>begin with 4b out of the object database.
>Try only moving the offending file out of the 4b directory.
Did not help still the repository look for this object?
Any one know how can I track this object and understand which file is it
ib]$ mv .git/objects/4b/9458b3786228369c63936db65827de3cc06200 ../
ib]$ git-fsck --full
dangling commit 0d43a63623237385e432572bf61171713dcd8e98
dangling commit 4fc6b1127e4a7f4ff5b65a2dd8a90779b5aff3e0
dangling commit 7da607374fe2b1ae09228d2035dd608c73dad7c8
dangling commit 004ef09ae022c60a30f9cd61f90d18df5db3628e
dangling commit 85112c6fabb6b8913ab244a8645d67380616eba6
broken link from tree 2d9263c6d23595e7cb2a21e5ebbb53655278dff8
to blob 4b9458b3786228369c63936db65827de3cc06200
missing blob 4b9458b3786228369c63936db65827de3cc06200
dangling commit bd98481afa93356fa6daa4b6f88c4e631ae2fd72
dangling commit e81e3d2c9c25e5bf5b31327b10b23f9bd0a6d056
dangling commit 92ff9b8cbc771345c9cde0c7fef2c23bb79242b9
^ permalink raw reply
* Re: [BUG] git-rebase fails when a commit message contains a diff
From: Johannes Schindelin @ 2007-11-09 13:20 UTC (permalink / raw)
To: Benoit Sigoure; +Cc: Junio C Hamano, Jonas Fonseca, git
In-Reply-To: <6FCE17E3-9FAA-4676-B12A-369B31743DA6@lrde.epita.fr>
Hi,
On Fri, 9 Nov 2007, Benoit Sigoure wrote:
> On Nov 9, 2007, at 3:28 AM, Johannes Schindelin wrote:
>
> > Would that not be easier to read as
> >
> > test t = "$INTERACTIVE" &&
> > git_editor "$TODO" || die "Could not execute editor"
>
> Hmm this will `die' if you're not running interactively.
D'oh. Of course I meant
test -z "$INTERACTIVE" || git_editor "$TODO" || die ...
Ciao,
Dscho
^ permalink raw reply
* Re: cogito remote branch
From: Andreas Ericsson @ 2007-11-09 13:20 UTC (permalink / raw)
To: MichaelTiloDressel@t-online.de; +Cc: git
In-Reply-To: <1IqTj5-24rt3I0@fwd33.aul.t-online.de>
MichaelTiloDressel@t-online.de wrote:
> Hi,
>
> I just saw the scripts cg-update, cg-push .. scripts try to guess a
> branch name functioning as origin if no argument is given. These scripts
> seam to use a branch named <branchname>-origin if it exists and the
> current
> branch is named <branchname> and is not the branch named master.
>
> I like that feature. Is it anywhere documented?
>
> In case there is no branch named <branchname>-origin the scripts just
> use origin even if the current branch is not master. I would prefer the
> scripts to fail in this case and to print a message asking the user to
> specifically name a branch.
>
Cogito is deprecated, and has been for quite some time. The "remote"
feature of core git (inspired by cogito) offers similar benefits.
--
Andreas Ericsson andreas.ericsson@op5.se
OP5 AB www.op5.se
Tel: +46 8-230225 Fax: +46 8-230231
^ 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