* Re: How to not download objects more than needed?
From: sean @ 2006-02-21 21:13 UTC (permalink / raw)
To: Radoslaw Szkodzinski; +Cc: git
In-Reply-To: <43FB6C42.5000208@gorzow.mm.pl>
On Tue, 21 Feb 2006 20:38:42 +0100
Radoslaw Szkodzinski <astralstorm@gorzow.mm.pl> wrote:
> I have a pecuilar, but common use case for git.
It's not really that peculiar.
> I have linux-2.6 repository pulled and I'd like to download some branch
> (say, netdev-2.6), which uses many of the same objects,
> but not to get all the objects from the git server.
Just make sure you're not using the rsync protocol. Using the
native git protocol would be best.
> I've already tried certain commands, but still can't do it,
> and my bandwidth isn't too happy about it.
For instance, make sure your current linus repository is up to date
with a "git pull" and then:
git fetch \
git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git \
upstream:netdev
will take the "upstream" branch from the netdev repository and name it
netdev in your local repository.
Sean
^ permalink raw reply
* Re: [PATCH] fmt-merge-msg: avoid open "-|" list form for Perl 5.6
From: Eric Wong @ 2006-02-21 20:56 UTC (permalink / raw)
To: Alex Riesen; +Cc: Junio C Hamano, Johannes Schindelin, git
In-Reply-To: <81b0412b0602210930w5c1a71aage12bad2079dd515a@mail.gmail.com>
Alex Riesen <raa.lkml@gmail.com> wrote:
> On 2/20/06, Junio C Hamano <junkio@cox.net> wrote:
> > * Eric, thanks for the hint. I have this four-patch series.
> > Could people with perl 5.6 please check them?
>
> Does not work here (ActiveState Build 811, Perl 5.8.6):
>
> $ perl -e 'open(F, "-|")'
> '-' is not recognized as an internal or external command,
> operable program or batch file.
Both "-|" and "|-" forms of open() use fork() internally. Iirc, fork()
doesn't work too well on that platform.
--
Eric Wong
^ permalink raw reply
* [PATCH] Fix typo in git-rebase.sh.
From: Jason Riedy @ 2006-02-21 20:56 UTC (permalink / raw)
To: git
s/upsteram/upstream in git-rebase.sh.
Signed-off-by: Jason Riedy <ejr@cs.berkeley.edu>
---
git-rebase.sh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
92550b0b04236ec52d6bb573e79fa2b5fac21228
diff --git a/git-rebase.sh b/git-rebase.sh
index 21c3d83..c47aa70 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -71,7 +71,7 @@ esac
# The upstream head must be given. Make sure it is valid.
upstream_name="$1"
upstream=`git rev-parse --verify "${upstream_name}^0"` ||
- die "invalid upsteram $upstream_name"
+ die "invalid upstream $upstream_name"
# If a hook exists, give it a chance to interrupt
if test -x "$GIT_DIR/hooks/pre-rebase"
--
1.2.2.g972a
^ permalink raw reply related
* Re: rewriting pathnames in history
From: Sam Vilain @ 2006-02-21 20:54 UTC (permalink / raw)
To: Jeff King; +Cc: git
In-Reply-To: <20060221075342.GA13814@coredump.intra.peff.net>
Jeff King wrote:
> I recently ran into an interesting situation with git. I created a
> repository that consisted of several directories (and files in them).
> Later, after many commits, I realized I would prefer each directory have
> its own git repository. That is, given a repo with the files:
> foo/bar
> baz/bleep
> I wanted two repos, "foo" containing the file "bar" and "baz" containing
> the file "bleep".
Nice work, but I think you should be able to get it *really* fast, much
faster than that.
Instead of replaying a checked out copy, just go through the commit
history, and when the treeID for that subdirectory has changed, then
that directory has a new revision. So, make a new commit object with
that as the treeid. in other words, you'll be constructing a very
lightweight branch, but with its tree IDs all corresponding to
sub-directory treeids on the combined branch. The history ripple script
that was posted the other day probably has most of the pieces you need.
Once this is done, you can just clone that branch to "get it out".
Sam.
^ permalink raw reply
* [PATCH] git-ls-files: Fix, document, and add test for --error-unmatch option.
From: Carl Worth @ 2006-02-21 20:48 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
[-- Attachment #1: Type: text/plain, Size: 3466 bytes --]
---
Junio,
I'm still not sure what the easiest way is for me to provide changes
to you. I've been doing it here on the list, like with the current
message. But would it be easier for me to send pull requests?
For example, with the git-clone failure cleanup I recently did, it
seems the new test case I wrote didn't land in your tree. And since
we went through patches in the mail, the missing commit wasn't
obvious to me, (I checked and noticed with git-cherry, but it seems
it would have been much easier if we were working with the same
commit objects).
If it would help you for me to publish a tree, just let me know how
best to organize it, (I didn't see any comments on that in
Documentation/SubmittingPatches).
For now, I've made a tree available at:
git://git.freedesktop.org/~cworth/git
It contains two branches of interest:
ls-files-error-unmatch # The patch in this mail
clone-fail-cleanup # The missing test case mentioned above
as well as the version I've currently got installed and am running:
cworth # The merge of those two with master
Let me know if any other organization would be more helpful, and how
to best make pull requests if desired.
Thanks,
-Carl
Documentation/git-ls-files.txt | 5 +++++
ls-files.c | 1 +
t/t3020-ls-files-error-unmatch.sh | 27 +++++++++++++++++++++++++++
3 files changed, 33 insertions(+), 0 deletions(-)
create mode 100755 t/t3020-ls-files-error-unmatch.sh
d7e8e6b2bb34db12c4fc1e4f83810db50b7ddf69
diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt
index fe53412..28dc533 100644
--- a/Documentation/git-ls-files.txt
+++ b/Documentation/git-ls-files.txt
@@ -14,6 +14,7 @@ SYNOPSIS
[-x <pattern>|--exclude=<pattern>]
[-X <file>|--exclude-from=<file>]
[--exclude-per-directory=<file>]
+ [--error-unmatch]
[--full-name] [--] [<file>]\*
DESCRIPTION
@@ -72,6 +73,10 @@ OPTIONS
read additional exclude patterns that apply only to the
directory and its subdirectories in <file>.
+--error-unmatch::
+ If any <file> does not appear in the index, treat this as an
+ error (return 1).
+
-t::
Identify the file status with the following tags (followed by
a space) at the start of each line:
diff --git a/ls-files.c b/ls-files.c
index df93cf2..27059e2 100644
--- a/ls-files.c
+++ b/ls-files.c
@@ -758,6 +758,7 @@ int main(int argc, const char **argv)
continue;
error("pathspec '%s' did not match any.",
pathspec[num] + prefix_offset);
+ errors++;
}
return errors ? 1 : 0;
}
diff --git a/t/t3020-ls-files-error-unmatch.sh b/t/t3020-ls-files-error-unmatch.sh
new file mode 100755
index 0000000..d55559e
--- /dev/null
+++ b/t/t3020-ls-files-error-unmatch.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+#
+# Copyright (c) 2006 Carl D. Worth
+#
+
+test_description='git-ls-files test for --error-unmatch option
+
+This test runs git-ls-files --error-unmatch to ensure it correctly
+returns an error when a non-existent path is provided on the command
+line.
+'
+. ./test-lib.sh
+
+touch foo bar
+git-update-index --add foo bar
+git-commit -m "add foo bar"
+
+test_expect_failure \
+ 'git-ls-files --error-unmatch should fail with unmatched path.' \
+ 'git-ls-files --error-unmatch foo bar-does-not-match'
+
+test_expect_success \
+ 'git-ls-files --error-unmatch should succeed eith matched paths.' \
+ 'git-ls-files --error-unmatch foo bar'
+
+test_done
+1
--
1.2.2.g73be-dirty
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply related
* Re: [PATCH] fmt-merge-msg: avoid open "-|" list form for Perl 5.6
From: Sam Vilain @ 2006-02-21 20:36 UTC (permalink / raw)
To: Alex Riesen; +Cc: Junio C Hamano, Johannes Schindelin, Eric Wong, git
In-Reply-To: <81b0412b0602210930w5c1a71aage12bad2079dd515a@mail.gmail.com>
Alex Riesen wrote:
> On 2/20/06, Junio C Hamano <junkio@cox.net> wrote:
>
>> * Eric, thanks for the hint. I have this four-patch series.
>> Could people with perl 5.6 please check them?
>
>
> Does not work here (ActiveState Build 811, Perl 5.8.6):
>
> $ perl -e 'open(F, "-|")'
> '-' is not recognized as an internal or external command,
> operable program or batch file.
Portability, Ease of Coding, Few CPAN Module Dependencies. Pick any two.
Sam.
^ permalink raw reply
* Re: merging problems with Linus' kernel tree.
From: Dave Jones @ 2006-02-21 20:29 UTC (permalink / raw)
To: Linus Torvalds; +Cc: git
In-Reply-To: <Pine.LNX.4.64.0602211153570.30245@g5.osdl.org>
On Tue, Feb 21, 2006 at 12:03:04PM -0800, Linus Torvalds wrote:
> That, in turn, is usually due to an aborted merge.
Hmm. (Recalls a power outage a few days ago).
I'll bet that's when it happened.
> Do a "git checkout -f".
Fixed, thanks.
Dave
^ permalink raw reply
* Re: merging problems with Linus' kernel tree.
From: Linus Torvalds @ 2006-02-21 20:03 UTC (permalink / raw)
To: Dave Jones; +Cc: git
In-Reply-To: <20060221191948.GE22988@redhat.com>
On Tue, 21 Feb 2006, Dave Jones wrote:
>
> For some reason, that shows that file being deleted.
>
> diff --git a/Documentation/cpu-hotplug.txt b/Documentation/cpu-hotplug.txt
> deleted file mode 100644
> index e71bc6c..0000000
> --- a/Documentation/cpu-hotplug.txt
> +++ /dev/null
> @@ -1,373 +0,0 @@
If that file didn't exist in your index, "git diff" wouldn't even show it.
So it exists in your index, but not in your working tree.
> Hmm, this tree is on NFS. The server was 2-3 seconds ahead of the client
> (for some reason ntp wasn't running), but I wouldn't expect such chaos
> to ensue from this?
No, that won't matter. git shouldn't ever look at the current time (well,
except when it creates a new commit object, of course), just the normal
file time, which will be determined by the server.
> Hmm. git status shows a ton of modified files, that I know I've never touched.
> (arch/frv is somewhere I'd rather not venture)
Sounds like you might have had a partial merge at some point that you
^C'd or that just failed, and you did "git reset" on it without the
"--hard" flag?
> Spooky. I'm seriously questioning myself whether or not I have
> done something to this tree, but I'm 99.999% sure it's unmodified
> (by me at least).
>
> git diff on any of the modified files shows no output, which
> could be explained by your modified timestamp theory, but
> how about the deleted/new files ?
Those really are different in the working tree than the index (or the git
tree: the difference between "git diff" and "git diff HEAD" - and "git
status" does both - is obviously what you compare to).
Since it's in the "will commit" section, it means that it's in your index
but not in your HEAD tree. Which in turn implies that your index seems to
not actually match your HEAD.
That, in turn, is usually due to an aborted merge.
Do a "git checkout -f".
Linus
^ permalink raw reply
* How to not download objects more than needed?
From: Radoslaw Szkodzinski @ 2006-02-21 19:38 UTC (permalink / raw)
To: Git Mailing List
[-- Attachment #1: Type: text/plain, Size: 584 bytes --]
I have a pecuilar, but common use case for git.
I have linux-2.6 repository pulled and I'd like to download some branch
(say, netdev-2.6), which uses many of the same objects,
but not to get all the objects from the git server.
I've already tried certain commands, but still can't do it,
and my bandwidth isn't too happy about it.
It seems to require some kind of HEAD rewinding,
or maybe fetching to another branch, I don't know.
Anyone cares to help?
--
GPG Key id: 0xD1F10BA2
Fingerprint: 96E2 304A B9C4 949A 10A0 9105 9543 0453 D1F1 0BA2
AstralStorm
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 254 bytes --]
^ permalink raw reply
* Re: merging problems with Linus' kernel tree.
From: Dave Jones @ 2006-02-21 19:19 UTC (permalink / raw)
To: Linus Torvalds; +Cc: git
In-Reply-To: <Pine.LNX.4.64.0602211052360.30245@g5.osdl.org>
On Tue, Feb 21, 2006 at 10:55:15AM -0800, Linus Torvalds wrote:
>
>
> On Tue, 21 Feb 2006, Dave Jones wrote:
> >
> > Documentation/cpu-hotplug.txt: needs update
> > fatal: Entry 'Documentation/cpu-hotplug.txt' would be overwritten by merge. Cannot merge.
>
> This means that it's dirty in the index, not that you've committed any
> changes.
>
> Do a "git diff".
For some reason, that shows that file being deleted.
diff --git a/Documentation/cpu-hotplug.txt b/Documentation/cpu-hotplug.txt
deleted file mode 100644
index e71bc6c..0000000
--- a/Documentation/cpu-hotplug.txt
+++ /dev/null
@@ -1,373 +0,0 @@
...
> (It may also be that the diff is empty, and only shows the filename. That
> means that you've changed the mtime - for example edited it, and then
> undone the edit
Hmm, this tree is on NFS. The server was 2-3 seconds ahead of the client
(for some reason ntp wasn't running), but I wouldn't expect such chaos
to ensue from this?
> - so that the file is dirty in the index, even if the
> _contents_ are the same. If so, do a "git-update-index --refresh" or
> similar, or just ask for "git status", which will do it for you as part of
> checking the status of all your files).
Hmm. git status shows a ton of modified files, that I know I've never touched.
(arch/frv is somewhere I'd rather not venture)
#
# Updated but not checked in:
# (will commit)
#
# modified: Documentation/cpu-hotplug.txt
# new file: Documentation/fujitsu/frv/kernel-ABI.txt
# modified: Documentation/hwmon/w83627hf
# modified: Documentation/kernel-parameters.txt
# modified: Documentation/kprobes.txt
# modified: Documentation/mips/AU1xxx_IDE.README
# modified: Documentation/powerpc/booting-without-of.txt
# modified: Documentation/scsi/ChangeLog.megaraid_sas
# modified: MAINTAINERS
# modified: Makefile
# modified: arch/arm/kernel/calls.S
# modified: arch/arm/kernel/setup.c
# modified: arch/arm/kernel/smp.c
# modified: arch/arm/kernel/sys_oabi-compat.c
# modified: arch/arm/mach-integrator/platsmp.c
# modified: arch/arm/mach-iop3xx/iop321-setup.c
# modified: arch/arm/mach-iop3xx/iop331-setup.c
# modified: arch/arm/mach-ixp4xx/nslu2-setup.c
# modified: arch/arm/mach-realview/platsmp.c
# modified: arch/arm/mach-s3c2410/mach-h1940.c
# new file: arch/arm/mach-s3c2410/s3c2400.h
# modified: arch/arm/plat-omap/pm.c
# modified: arch/frv/Kconfig
# modified: arch/frv/Makefile
# modified: arch/frv/kernel/break.S
# modified: arch/frv/kernel/entry-table.S
# modified: arch/frv/kernel/entry.S
# modified: arch/frv/kernel/head.S
# modified: arch/frv/kernel/irq.c
# modified: arch/frv/mm/kmap.c
# modified: arch/h8300/Kconfig
# modified: arch/h8300/Kconfig.cpu
# new file: arch/i386/boot/.gitignore
# new file: arch/i386/boot/tools/.gitignore
# new file: arch/i386/kernel/.gitignore
# modified: arch/i386/kernel/cpu/transmeta.c
# modified: arch/i386/kernel/head.S
# modified: arch/i386/kernel/syscall_table.S
# modified: arch/i386/kernel/timers/timer_tsc.c
# modified: arch/i386/kernel/vsyscall-sysenter.S
# modified: arch/i386/oprofile/backtrace.c
# modified: arch/ia64/kernel/acpi.c
# modified: arch/ia64/kernel/entry.S
# modified: arch/ia64/kernel/ia64_ksyms.c
# modified: arch/ia64/kernel/setup.c
# modified: arch/ia64/kernel/smpboot.c
# modified: arch/ia64/kernel/time.c
# modified: arch/ia64/kernel/traps.c
# modified: arch/ia64/sn/kernel/io_init.c
# modified: arch/ia64/sn/kernel/setup.c
# modified: arch/ia64/sn/kernel/sn2/prominfo_proc.c
# modified: arch/ia64/sn/kernel/sn2/sn2_smp.c
# modified: arch/ia64/sn/kernel/sn2/sn_proc_fs.c
# modified: arch/ia64/sn/kernel/sn2/timer.c
# modified: arch/ia64/sn/kernel/sn2/timer_interrupt.c
# modified: arch/ia64/sn/kernel/tiocx.c
# modified: arch/ia64/sn/kernel/xpc_channel.c
# modified: arch/ia64/sn/kernel/xpc_main.c
# modified: arch/ia64/sn/pci/pci_dma.c
# modified: arch/ia64/sn/pci/pcibr/pcibr_ate.c
# modified: arch/ia64/sn/pci/pcibr/pcibr_dma.c
# modified: arch/ia64/sn/pci/pcibr/pcibr_provider.c
# modified: arch/m68k/Kconfig
# modified: arch/m68k/fpsp040/bindec.S
# modified: arch/m68k/fpsp040/binstr.S
# modified: arch/m68k/fpsp040/bugfix.S
# modified: arch/m68k/fpsp040/decbin.S
# modified: arch/m68k/fpsp040/do_func.S
# modified: arch/m68k/fpsp040/fpsp.h
# modified: arch/m68k/fpsp040/gen_except.S
# modified: arch/m68k/fpsp040/get_op.S
# modified: arch/m68k/fpsp040/kernel_ex.S
# modified: arch/m68k/fpsp040/res_func.S
# modified: arch/m68k/fpsp040/round.S
# modified: arch/m68k/fpsp040/sacos.S
# modified: arch/m68k/fpsp040/sasin.S
# modified: arch/m68k/fpsp040/satan.S
# modified: arch/m68k/fpsp040/satanh.S
# modified: arch/m68k/fpsp040/scale.S
# modified: arch/m68k/fpsp040/scosh.S
# modified: arch/m68k/fpsp040/setox.S
# modified: arch/m68k/fpsp040/sgetem.S
# modified: arch/m68k/fpsp040/sint.S
# modified: arch/m68k/fpsp040/skeleton.S
# modified: arch/m68k/fpsp040/slog2.S
# modified: arch/m68k/fpsp040/slogn.S
# modified: arch/m68k/fpsp040/smovecr.S
# modified: arch/m68k/fpsp040/srem_mod.S
# modified: arch/m68k/fpsp040/ssin.S
# modified: arch/m68k/fpsp040/ssinh.S
# modified: arch/m68k/fpsp040/stan.S
# modified: arch/m68k/fpsp040/stanh.S
# modified: arch/m68k/fpsp040/sto_res.S
# modified: arch/m68k/fpsp040/stwotox.S
# modified: arch/m68k/fpsp040/tbldo.S
# modified: arch/m68k/fpsp040/util.S
# modified: arch/m68k/fpsp040/x_bsun.S
# modified: arch/m68k/fpsp040/x_fline.S
# modified: arch/m68k/fpsp040/x_operr.S
# modified: arch/m68k/fpsp040/x_ovfl.S
# modified: arch/m68k/fpsp040/x_snan.S
# modified: arch/m68k/fpsp040/x_store.S
# modified: arch/m68k/fpsp040/x_unfl.S
# modified: arch/m68k/fpsp040/x_unimp.S
# modified: arch/m68k/fpsp040/x_unsupp.S
# modified: arch/m68knommu/Kconfig
# modified: arch/mips/Makefile
# modified: arch/mips/kernel/process.c
# modified: arch/mips/kernel/scall32-o32.S
# modified: arch/mips/kernel/signal-common.h
# modified: arch/mips/kernel/signal32.c
# modified: arch/mips/kernel/signal_n32.c
# modified: arch/mips/kernel/smp_mt.c
# modified: arch/mips/mm/c-r4k.c
# modified: arch/mips/mm/c-tx39.c
# modified: arch/parisc/Kconfig
# modified: arch/parisc/kernel/syscall_table.S
# modified: arch/powerpc/Kconfig
# modified: arch/powerpc/Makefile
# modified: arch/powerpc/kernel/Makefile
# modified: arch/powerpc/kernel/systbl.S
# modified: arch/ppc/kernel/misc.S
# modified: arch/s390/Kconfig
# modified: arch/s390/defconfig
# modified: arch/s390/kernel/compat_linux.c
# modified: arch/s390/kernel/compat_signal.c
# modified: arch/s390/kernel/compat_wrapper.S
# modified: arch/s390/kernel/machine_kexec.c
# modified: arch/s390/kernel/process.c
# modified: arch/s390/kernel/setup.c
# modified: arch/s390/kernel/smp.c
# modified: arch/s390/kernel/syscalls.S
# modified: arch/s390/lib/delay.c
# modified: arch/sh/Kconfig
# modified: arch/sparc/kernel/systbls.S
# modified: arch/sparc64/kernel/sys_sparc32.c
# modified: arch/sparc64/kernel/systbls.S
# modified: arch/v850/Kconfig
# modified: arch/x86_64/defconfig
# modified: arch/x86_64/ia32/ia32entry.S
# modified: arch/x86_64/ia32/sys_ia32.c
# modified: arch/x86_64/kernel/apic.c
# modified: arch/x86_64/kernel/entry.S
# modified: arch/x86_64/kernel/head.S
# modified: arch/x86_64/kernel/io_apic.c
# modified: arch/x86_64/kernel/mpparse.c
# modified: arch/x86_64/kernel/nmi.c
# modified: arch/x86_64/kernel/pci-gart.c
# modified: arch/x86_64/kernel/time.c
# modified: arch/x86_64/kernel/traps.c
# modified: arch/x86_64/mm/k8topology.c
# modified: arch/x86_64/mm/numa.c
# modified: arch/x86_64/mm/srat.c
# modified: drivers/acpi/resources/rscalc.c
# modified: drivers/block/pktcdvd.c
# modified: drivers/bluetooth/bt3c_cs.c
# modified: drivers/char/drm/drm_pciids.h
# modified: drivers/char/esp.c
# modified: drivers/char/hpet.c
# modified: drivers/char/tipar.c
# modified: drivers/char/tpm/tpm_infineon.c
# modified: drivers/char/tty_io.c
# modified: drivers/char/watchdog/pcwd.c
# modified: drivers/char/watchdog/sa1100_wdt.c
# modified: drivers/cpufreq/cpufreq.c
# modified: drivers/hwmon/it87.c
# modified: drivers/hwmon/vt8231.c
# modified: drivers/hwmon/w83781d.c
# modified: drivers/i2c/busses/i2c-isa.c
# modified: drivers/ide/ide-taskfile.c
# modified: drivers/ide/pci/sgiioc4.c
# modified: drivers/infiniband/core/mad.c
# modified: drivers/infiniband/hw/mthca/mthca_cmd.c
# modified: drivers/infiniband/hw/mthca/mthca_dev.h
# modified: drivers/infiniband/ulp/ipoib/ipoib.h
# modified: drivers/infiniband/ulp/ipoib/ipoib_multicast.c
# modified: drivers/input/keyboard/Makefile
# modified: drivers/input/misc/Makefile
# modified: drivers/input/misc/ixp4xx-beeper.c
# modified: drivers/input/mouse/logips2pp.c
# modified: drivers/input/mouse/trackpoint.c
# modified: drivers/input/mouse/trackpoint.h
# modified: drivers/input/serio/Makefile
# modified: drivers/input/touchscreen/ads7846.c
# modified: drivers/isdn/i4l/isdn_tty.c
# modified: drivers/macintosh/windfarm_smu_sat.c
# modified: drivers/message/fusion/mptbase.c
# modified: drivers/message/fusion/mptbase.h
# modified: drivers/message/fusion/mptctl.c
# modified: drivers/message/fusion/mptctl.h
# modified: drivers/message/fusion/mptscsih.c
# modified: drivers/mmc/mmci.c
# modified: drivers/net/Kconfig
# modified: drivers/net/appletalk/cops.h
# modified: drivers/net/bonding/bond_main.c
# modified: drivers/net/sis190.c
# modified: drivers/net/skge.c
# modified: drivers/net/sky2.c
# modified: drivers/net/tokenring/smctr.h
# modified: drivers/net/wireless/atmel.c
# modified: drivers/net/wireless/orinoco_cs.c
# modified: drivers/net/wireless/wavelan_cs.c
# modified: drivers/parisc/ccio-dma.c
# modified: drivers/parisc/sba_iommu.c
# modified: drivers/s390/char/sclp.c
# modified: drivers/s390/cio/chsc.c
# modified: drivers/s390/cio/device.c
# modified: drivers/s390/cio/device_pgid.c
# modified: drivers/s390/cio/device_status.c
# modified: drivers/s390/net/lcs.c
# modified: drivers/s390/net/lcs.h
# modified: drivers/s390/net/qeth.h
# modified: drivers/s390/net/qeth_eddp.c
# modified: drivers/s390/net/qeth_main.c
# modified: drivers/s390/scsi/zfcp_dbf.c
# modified: drivers/s390/scsi/zfcp_def.h
# modified: drivers/s390/scsi/zfcp_erp.c
# modified: drivers/s390/scsi/zfcp_ext.h
# modified: drivers/s390/scsi/zfcp_fsf.c
# modified: drivers/s390/scsi/zfcp_scsi.c
# modified: drivers/s390/scsi/zfcp_sysfs_adapter.c
# modified: drivers/scsi/3w-9xxx.c
# modified: drivers/scsi/aacraid/aachba.c
# modified: drivers/scsi/aacraid/aacraid.h
# modified: drivers/scsi/aacraid/commctrl.c
# modified: drivers/scsi/aacraid/comminit.c
# modified: drivers/scsi/aacraid/commsup.c
# modified: drivers/scsi/aacraid/dpcsup.c
# modified: drivers/scsi/aacraid/linit.c
# modified: drivers/scsi/gdth.c
# modified: drivers/scsi/ipr.c
# modified: drivers/scsi/ipr.h
# modified: drivers/scsi/iscsi_tcp.c
# modified: drivers/scsi/iscsi_tcp.h
# modified: drivers/scsi/libata-core.c
# modified: drivers/scsi/megaraid.c
# modified: drivers/scsi/megaraid.h
# modified: drivers/scsi/megaraid/megaraid_sas.c
# modified: drivers/scsi/megaraid/megaraid_sas.h
# modified: drivers/scsi/qla2xxx/qla_attr.c
# modified: drivers/scsi/qla2xxx/qla_def.h
# modified: drivers/scsi/qla2xxx/qla_gbl.h
# modified: drivers/scsi/qla2xxx/qla_init.c
# modified: drivers/scsi/qla2xxx/qla_iocb.c
# modified: drivers/scsi/qla2xxx/qla_isr.c
# modified: drivers/scsi/qla2xxx/qla_mbx.c
# modified: drivers/scsi/qla2xxx/qla_os.c
# modified: drivers/scsi/qla2xxx/qla_rscn.c
# modified: drivers/scsi/qla2xxx/qla_sup.c
# modified: drivers/scsi/sata_mv.c
# modified: drivers/scsi/sata_vsc.c
# modified: drivers/scsi/scsi_lib.c
# modified: drivers/scsi/scsi_scan.c
# modified: drivers/scsi/scsi_sysfs.c
# modified: drivers/scsi/scsi_transport_iscsi.c
# modified: drivers/scsi/sym53c8xx_2/sym_hipd.c
# modified: drivers/serial/8250.c
# modified: drivers/serial/Kconfig
# modified: drivers/serial/ioc4_serial.c
# modified: drivers/usb/host/pci-quirks.c
# modified: drivers/usb/host/sl811_cs.c
# modified: drivers/usb/input/hid-core.c
# modified: drivers/usb/misc/Kconfig
# modified: drivers/usb/misc/ldusb.c
# modified: drivers/usb/serial/pl2303.c
# modified: drivers/usb/serial/pl2303.h
# modified: drivers/usb/storage/unusual_devs.h
# modified: drivers/video/Kconfig
# modified: drivers/video/fbmem.c
# modified: drivers/video/gbefb.c
# modified: drivers/video/neofb.c
# modified: drivers/video/nvidia/nvidia.c
# modified: drivers/video/s3c2410fb.c
# modified: fs/cifs/file.c
# modified: fs/compat.c
# modified: fs/exec.c
# modified: fs/ext2/xattr.c
# modified: fs/fuse/dev.c
# modified: fs/fuse/file.c
# modified: fs/jbd/checkpoint.c
# modified: fs/jbd/commit.c
# modified: fs/lockd/clntlock.c
# modified: fs/lockd/svc4proc.c
# modified: fs/lockd/svcproc.c
# modified: fs/ocfs2/dlm/dlmcommon.h
# modified: fs/ocfs2/dlm/dlmconvert.c
# modified: fs/ocfs2/dlm/dlmlock.c
# modified: fs/ocfs2/dlm/dlmmaster.c
# modified: fs/ocfs2/dlm/dlmrecovery.c
# modified: fs/ocfs2/journal.c
# modified: fs/ocfs2/journal.h
# modified: fs/reiserfs/super.c
# modified: fs/reiserfs/xattr_acl.c
# modified: fs/select.c
# modified: fs/stat.c
# modified: include/asm-alpha/mman.h
# new file: include/asm-arm/arch-s3c2410/h1940-latch.h
# modified: include/asm-arm/mman.h
# modified: include/asm-arm/smp.h
# modified: include/asm-arm/unistd.h
# modified: include/asm-arm26/mman.h
# modified: include/asm-cris/mman.h
# modified: include/asm-frv/atomic.h
# modified: include/asm-frv/cacheflush.h
# modified: include/asm-frv/io.h
# modified: include/asm-frv/mman.h
# modified: include/asm-frv/spr-regs.h
# modified: include/asm-frv/system.h
# modified: include/asm-frv/uaccess.h
# modified: include/asm-frv/unistd.h
# new file: include/asm-generic/mman.h
# modified: include/asm-h8300/mman.h
# modified: include/asm-i386/mman.h
# modified: include/asm-i386/thread_info.h
# modified: include/asm-i386/topology.h
# modified: include/asm-i386/unistd.h
# modified: include/asm-ia64/acpi.h
# modified: include/asm-ia64/machvec_sn2.h
# modified: include/asm-ia64/mman.h
# modified: include/asm-ia64/sn/arch.h
# modified: include/asm-ia64/sn/bte.h
# modified: include/asm-ia64/sn/pcibr_provider.h
# modified: include/asm-ia64/sn/sn_feature_sets.h
# modified: include/asm-ia64/sn/xpc.h
# modified: include/asm-ia64/timex.h
# modified: include/asm-m32r/mman.h
# modified: include/asm-m68k/mman.h
# modified: include/asm-mips/cpu.h
# deleted: include/asm-mips/gcc/sgidefs.h
# modified: include/asm-mips/mach-generic/timex.h
# new file: include/asm-mips/mach-rm200/timex.h
# modified: include/asm-mips/mman.h
# modified: include/asm-mips/r4kcache.h
# modified: include/asm-mips/uaccess.h
# modified: include/asm-mips/unistd.h
# modified: include/asm-parisc/mman.h
# modified: include/asm-powerpc/mman.h
# modified: include/asm-powerpc/pgalloc.h
# modified: include/asm-powerpc/unistd.h
# modified: include/asm-s390/bitops.h
# modified: include/asm-s390/mman.h
# modified: include/asm-s390/setup.h
# modified: include/asm-s390/smp.h
# modified: include/asm-s390/unistd.h
# modified: include/asm-sh/mman.h
# modified: include/asm-sparc/mman.h
# modified: include/asm-sparc/unistd.h
# modified: include/asm-sparc64/mman.h
# modified: include/asm-sparc64/unistd.h
# modified: include/asm-v850/mman.h
# modified: include/asm-x86_64/hpet.h
# modified: include/asm-x86_64/ia32_unistd.h
# modified: include/asm-x86_64/mman.h
# modified: include/asm-x86_64/proto.h
# modified: include/asm-xtensa/mman.h
# modified: include/linux/compat.h
# modified: include/linux/jbd.h
# modified: include/linux/kernel.h
# modified: include/linux/ktime.h
# modified: include/linux/lockd/lockd.h
# modified: include/linux/mm.h
# modified: include/linux/netfilter.h
# modified: include/linux/netfilter_ipv4.h
# modified: include/linux/pci_ids.h
# modified: include/linux/ptrace.h
# modified: include/linux/sched.h
# modified: include/linux/syscalls.h
# modified: include/linux/time.h
# modified: include/linux/timex.h
# modified: include/net/bluetooth/rfcomm.h
# modified: include/net/ip.h
# modified: include/net/irda/irda.h
# modified: include/net/xfrm.h
# modified: include/scsi/iscsi_if.h
# modified: include/scsi/scsi.h
# modified: include/scsi/scsi_transport_iscsi.h
# modified: include/video/neomagic.h
# modified: kernel/cpuset.c
# modified: kernel/fork.c
# modified: kernel/hrtimer.c
# modified: kernel/power/snapshot.c
# modified: kernel/power/swsusp.c
# modified: kernel/ptrace.c
# modified: kernel/sched.c
# modified: kernel/sysctl.c
# modified: kernel/timer.c
# modified: lib/radix-tree.c
# modified: mm/hugetlb.c
# modified: mm/madvise.c
# modified: mm/memory.c
# modified: mm/mempolicy.c
# modified: mm/page_alloc.c
# modified: mm/swap.c
# modified: mm/vmscan.c
# modified: net/802/p8023.c
# modified: net/atm/signaling.c
# modified: net/bluetooth/hci_sock.c
# modified: net/bluetooth/rfcomm/core.c
# modified: net/bridge/br_netfilter.c
# modified: net/bridge/br_stp_if.c
# modified: net/core/datagram.c
# modified: net/ipv4/icmp.c
# modified: net/ipv4/ip_gre.c
# modified: net/ipv4/ip_output.c
# modified: net/ipv4/ipip.c
# modified: net/ipv4/netfilter.c
# modified: net/ipv4/netfilter/ip_nat_standalone.c
# modified: net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
# modified: net/ipv4/xfrm4_output.c
# modified: net/ipv6/icmp.c
# modified: net/ipv6/netfilter/ip6t_REJECT.c
# modified: net/ipv6/raw.c
# modified: net/netfilter/Kconfig
# modified: net/netfilter/nf_conntrack_core.c
# modified: net/netfilter/nf_conntrack_proto_tcp.c
# modified: net/netfilter/nf_conntrack_proto_udp.c
# modified: net/netlink/genetlink.c
# modified: net/xfrm/xfrm_policy.c
#
#
# Changed but not updated:
# (use git-update-index to mark for commit)
#
# deleted: Documentation/cpu-hotplug.txt
#
Spooky. I'm seriously questioning myself whether or not I have
done something to this tree, but I'm 99.999% sure it's unmodified
(by me at least).
git diff on any of the modified files shows no output, which
could be explained by your modified timestamp theory, but
how about the deleted/new files ?
Dave
^ permalink raw reply related
* Re: merging problems with Linus' kernel tree.
From: Linus Torvalds @ 2006-02-21 18:55 UTC (permalink / raw)
To: Dave Jones; +Cc: git
In-Reply-To: <20060221183306.GC22988@redhat.com>
On Tue, 21 Feb 2006, Dave Jones wrote:
>
> Documentation/cpu-hotplug.txt: needs update
> fatal: Entry 'Documentation/cpu-hotplug.txt' would be overwritten by merge. Cannot merge.
This means that it's dirty in the index, not that you've committed any
changes.
Do a "git diff".
(It may also be that the diff is empty, and only shows the filename. That
means that you've changed the mtime - for example edited it, and then
undone the edit - so that the file is dirty in the index, even if the
_contents_ are the same. If so, do a "git-update-index --refresh" or
similar, or just ask for "git status", which will do it for you as part of
checking the status of all your files).
Linus
^ permalink raw reply
* [PATCH] Don't sent objects for refs we're not going to update.
From: Stephen C. Tweedie @ 2006-02-21 18:48 UTC (permalink / raw)
To: git mailing list; +Cc: Stephen Tweedie
In-Reply-To: <1140547568.5509.21.camel@orbit.scot.redhat.com>
send_pack() sends only those refs we've asked to be updated on the
destination---either via an explicit refspec or by matching local and
remote refs. But rev_list() builds an object list for *all* refs it
can find. For a tree with many tags/heads, this means that it is
impossible to push updates even to a single refspec, as exec_rev_list()
overflows its arg length limit.
Fix this by skipping refs with no peer_ref set in exec_rev_list().
send_pack() already skips it when sending refs; we need to skip it
when building the object list for the pack too.
Signed-off-by: Stephen Tweedie <sct@redhat.com>
---
send-pack.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
4aa39c0920eea37987ca8a6b10861da7a87b5c14
diff --git a/send-pack.c b/send-pack.c
index 990be3f..d2a39d9 100644
--- a/send-pack.c
+++ b/send-pack.c
@@ -42,8 +42,10 @@ static void exec_rev_list(struct ref *re
args[i++] = "rev-list"; /* 0 */
args[i++] = "--objects"; /* 1 */
- while (refs) {
+ for (; refs; refs = refs->next) {
char *buf = malloc(100);
+ if (!refs->peer_ref)
+ continue;
if (i > 900)
die("git-rev-list environment overflow");
if (!is_zero_sha1(refs->old_sha1) &&
@@ -56,7 +58,6 @@ static void exec_rev_list(struct ref *re
args[i++] = buf;
snprintf(buf, 50, "%s", sha1_to_hex(refs->new_sha1));
}
- refs = refs->next;
}
args[i] = NULL;
execv_git_cmd(args);
--
1.2.2.g6643-dirty
^ permalink raw reply related
* Git cannot push to repository with too many tags/heads
From: Stephen C. Tweedie @ 2006-02-21 18:46 UTC (permalink / raw)
To: git mailing list; +Cc: Stephen Tweedie
Hi,
I'm using git's cvs import to track the Fedora kernel rpm repository,
and it has just passed a watermark that git cannot currently cope with.
The problem is the large number of branches and tags on this repository.
A tag for every build means that the number builds up rapidly, and
git-send-pack has an internal limit of 900 refs to query when building a
pack.
I hoped this wouldn't be a problem. In theory, I should just be able to
push to a single refspec and avoid that limit entirely. But no ---
unfortunately, git is determined to push out the objects for *every* ref
that matches between src and dst when building the pack, even if it's
not actually going to update the remote ref. And in building the
git-rev-list argument list for that colossal update, it exceeds the
internal limit of 900 refs in exec_rev_list().
I think exec_rev_list() is doing the wrong thing here. If I specify an
explicit refspec list for git-send-pack, then when send_pack() calls
match_refs(), we break out to match_explicit_refs() and set
dst->peer_ref only for the ref[s] which match the refspec. send_pack()
then skips all other refs by doing a
if (!ref->peer_ref)
continue;
Unfortunately, exec_rev_list() is missing this, and it tries to ask
git-rev-list for the commit objects of *every* ref on the remote_refs
list, even if they have been explicitly excluded by match_refs() and
have no peer_ref. So with this huge repository, I can't even push a
single refspec without bumping into the limit of 900 refs.
The immediate consequence to me is that I can't push to this particular
repository. But if I'm following the code right, a consequence is that
git-send-pack is accidentally sending all objects for refs that the
remote end is prepared to receive, even if we've supplied a refspec
asking for only a subset of those refs to actually be updated.
I think we can fix this just by adding a test for ref->peer_ref to
exec_rev_list(). That seems to fix the immediate problem for me, at
least. Patch to follow.
--Stephen
^ permalink raw reply
* merging problems with Linus' kernel tree.
From: Dave Jones @ 2006-02-21 18:33 UTC (permalink / raw)
To: git
I did my morning 'git pull' on Linus' tree to a clean tree
that I never make any commits to, and got this ...
$ git pull
Unpacking 2425 objects
100% (2425/2425) done
* refs/heads/origin: fast forward to branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Auto-following refs/tags/v2.6.16-rc3
Auto-following refs/tags/v2.6.16-rc4
Unpacking 2 objects
100% (2/2) done
* refs/tags/v2.6.16-rc4: storing tag 'v2.6.16-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
* refs/tags/v2.6.16-rc3: storing tag 'v2.6.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Updating from 418aade459f03318defd18ef0b11981a63bd81b0 to 5914811acf36c3ff091f860a6964808f668f27d0.
Documentation/cpu-hotplug.txt: needs update
fatal: Entry 'Documentation/cpu-hotplug.txt' would be overwritten by merge. Cannot merge.
$ git-fsck-objects
dangling commit 5914811acf36c3ff091f860a6964808f668f27d0
$ git-cat-file commit 5914811acf36c3ff091f860a6964 808f668f27d0
tree 04317a64fa5e76a13f29de655fe354abd627445d
parent 6d7b9efacba9f4e5f4d5ca165b1a4350da52ddd7
author Bj�rn Steinbrink <B.Steinbrink@gmx.de> 1140282763 +0100
committer Linus Torvalds <torvalds@g5.osdl.org> 1140496058 -0800
[PATCH] kjournald keeps reference to namespace
In daemonize() a new thread gets cleaned up and 'merged' with init_task.
The current fs_struct is handled there, but not the current namespace.
This adds the namespace part.
[ Eric Biederman pointed out the namespace wrappers, and also notes that
we can't ever count on using our parents namespace because we already
have called exit_fs(), which is the only way to the namespace from a
process. ]
Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Acked-by: Eric Biederman <ebiederm@xmission.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
I ran a fsck on the disk, and that turned up nothing, so I'm
not expecting any local fs corruption.
What's up with this, and how do I fix it?
Dave
^ permalink raw reply
* Re: [PATCH] git-mktree: reverse of git-ls-tree.
From: Linus Torvalds @ 2006-02-21 18:00 UTC (permalink / raw)
To: Keith Packard; +Cc: Junio C Hamano, Tommi Virtanen, git
In-Reply-To: <1140543982.16926.145.camel@evo.keithp.com>
On Tue, 21 Feb 2006, Keith Packard wrote:
>
> Yes, all three are equivalent, my only point was that '(c)' is
> meaningless. Which, as I noted is just pedantry.
Pedantry is fine on a mailing list. But meaningless pedantry in a lawyer
is bad. My point was that your _lawyers_ are bad. Tell them to concentrate
on something that matters.
Linus
^ permalink raw reply
* Re: [PATCH] git-mktree: reverse of git-ls-tree.
From: Linus Torvalds @ 2006-02-21 17:57 UTC (permalink / raw)
To: Keith Packard; +Cc: Junio C Hamano, Andreas Ericsson, git
In-Reply-To: <1140542628.16926.125.camel@evo.keithp.com>
[-- Attachment #1: Type: TEXT/PLAIN, Size: 603 bytes --]
On Tue, 21 Feb 2006, Keith Packard wrote:
>
> Precisely. I'd say either remove the (c) or replace it with the correct
> symbol.
Taking that to its logical conclusion, you should remove the whole line,
since none of it is in any way required and it's all unnecessary.
The thing is, the string "(c)" is a _lot_ more readable than the sanest
alternative for © (\c2\a9, ie the appropriate UTF8 string). Because even
that sane representation will actually show up as something else in a
_lot_ of editors, and is often hard to type for people.
There's a reason people use "(c)" rather "©".
Linus
^ permalink raw reply
* Re: [PATCH] git-mktree: reverse of git-ls-tree.
From: Keith Packard @ 2006-02-21 17:46 UTC (permalink / raw)
To: Linus Torvalds; +Cc: keithp, Junio C Hamano, Tommi Virtanen, git
In-Reply-To: <Pine.LNX.4.64.0602210915320.30245@g5.osdl.org>
[-- Attachment #1: Type: text/plain, Size: 362 bytes --]
On Tue, 2006-02-21 at 09:40 -0800, Linus Torvalds wrote:
> Which mentions the © letter, but makes it very very
> clear that "Copyright" or the abbreviation "Copr." are totally
> interchangeable in the US.
Yes, all three are equivalent, my only point was that '(c)' is
meaningless. Which, as I noted is just pedantry.
--
keith.packard@intel.com
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Re: [PATCH] git-mktree: reverse of git-ls-tree.
From: Linus Torvalds @ 2006-02-21 17:40 UTC (permalink / raw)
To: Keith Packard; +Cc: Junio C Hamano, Tommi Virtanen, git
In-Reply-To: <1140504750.16926.111.camel@evo.keithp.com>
[-- Attachment #1: Type: TEXT/PLAIN, Size: 2509 bytes --]
On Mon, 20 Feb 2006, Keith Packard wrote:
>
> > + * Copyright (c) Junio C Hamano, 2006
>
> I've been told by at least two lawyers that the string '(c)' has no
> legal meaning in the US. If you want to indicate copyright, the only
> symbol which does carry legal weight is the c-in-a-circle mark '©'.
You should change lawyers, methinks.
The thing is, once the same line says "Copyright", the string '(c)' may be
meaningless, but more importantly, your lawyers are wasting your time with
pointless and mindless "punktknulleri" (literal meaning: "the f*cking of
points", aka being anal retentive).
Of course, they are probably also charging you for that time they are
wasting, which is why you should fire them and find somebody who tells you
anything relevant.
The FACT is that
(a) You can write out the word "copyright" in its entirety.
(b) the US legal system very much takes intent into account, so even if
you don't, if the meaning is clear, it's not like it matters. This
is even more true on most of the rest of the civilized world, btw (ie
Europe in general gives authors _more_ rights than the US, since they
recognize the notion of "moral rights")
(c) you own the copyright anyway ever since 1988, when the US ratified
the Berne convention. In fact, even before then, the US had adopted
the notion of automatic copyrights, and any work created after 1978
falls under this.
Anyway, for more details if you _really_ care, look up "Circular 3" by the
United States Copyright Office. The very first sentence of that paper
talks about how the notice isn't even required any more, but if you want
to talk to your punktknullande lawyers, point them to the section called
"form of notice". Which mentions the © letter, but makes it very very
clear that "Copyright" or the abbreviation "Copr." are totally
interchangeable in the US.
Now, in some _other_ countries, the © mark may be special, but quite
frankly, you won't really care. If it matters, those countries haven't
ratified the Berne convention, and you'll never ever in a million years
care about them. It's absolutely certainly not the case in any relevant
country.
Any country where "©" matters likely has many bigger problems wrt
copyrights, like not honoring them at all.
So: if you care about the copyright law in Ulan Bator, you may have to use
the © character. But the likelihood is that it's not an issue even there.
So tell your lawyers to f*ck the hell off.
Linus
^ permalink raw reply
* Re: [PATCH] fmt-merge-msg: avoid open "-|" list form for Perl 5.6
From: Alex Riesen @ 2006-02-21 17:30 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Johannes Schindelin, Eric Wong, git
In-Reply-To: <7vr75xbs8w.fsf_-_@assigned-by-dhcp.cox.net>
On 2/20/06, Junio C Hamano <junkio@cox.net> wrote:
> * Eric, thanks for the hint. I have this four-patch series.
> Could people with perl 5.6 please check them?
Does not work here (ActiveState Build 811, Perl 5.8.6):
$ perl -e 'open(F, "-|")'
'-' is not recognized as an internal or external command,
operable program or batch file.
^ permalink raw reply
* Re: [PATCH] git-mktree: reverse of git-ls-tree.
From: Keith Packard @ 2006-02-21 17:23 UTC (permalink / raw)
To: Junio C Hamano; +Cc: keithp, Andreas Ericsson, git
In-Reply-To: <7vr75x11or.fsf@assigned-by-dhcp.cox.net>
[-- Attachment #1: Type: text/plain, Size: 931 bytes --]
On Tue, 2006-02-21 at 01:49 -0800, Junio C Hamano wrote:
> Keith is saying that unlike ciecle-c, (c) is meaningless. While
> he is right about that, it does not matter, as long as he is
> talking about "legal meaning in the US". It is my understanding
> that spelled out "Copyright" (or its abbreviation, "Copr.")
> weighs as much as the circle-c mark.
Precisely. I'd say either remove the (c) or replace it with the correct
symbol. As including the correct symbol requires selecting between an
8859 and 10646 encoding, one shows one's i18n-fu by including the © in
UTF-8.
Once this choice is firmly in place, the opportunties for excessive
character usage really flourish:
http://gitweb.freedesktop.org/?p=cairo;a=blobdiff;h=1c63adec9b6547c6446548dc3a877e1e4ba29bfd;hp=a6ebc5e04773c8b544cfb721b635ef5534be235f;hb=cc890b9cf4d2a38e13ae48e16589c4fd02678f99;f=src/cairo-pen.c
--
keith.packard@intel.com
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Re: PATCH: fix git-fmt-merge-msg on ActiveState Perl
From: Alex Riesen @ 2006-02-21 15:48 UTC (permalink / raw)
To: Git Mailing List; +Cc: Junio C Hamano
In-Reply-To: <81b0412b0602210745i637692d3p5462c2b3a00df793@mail.gmail.com>
On 2/21/06, Alex Riesen <raa.lkml@gmail.com> wrote:
> For people who stuck with ActiveState Perl, as there seem to be
> no chance for it to support the list form of "open" in foreseeable future.
Too late... Sorry :)
^ permalink raw reply
* PATCH: fix git-fmt-merge-msg on ActiveState Perl
From: Alex Riesen @ 2006-02-21 15:45 UTC (permalink / raw)
To: Git Mailing List; +Cc: Junio C Hamano
[-- Attachment #1: Type: text/plain, Size: 248 bytes --]
For people who stuck with ActiveState Perl, as there seem to be
no chance for it to support the list form of "open" in foreseeable future.
Working it around again.
Should be harmless, as there are only sha1s passed
---
@#$%^&* windows!!!
[-- Attachment #2: 0001-fix-git-fmt-merge-msg-on-activestate-perl.txt --]
[-- Type: text/plain, Size: 1263 bytes --]
>From nobody Mon Sep 17 00:00:00 2001
From: Alex Riesen <raa.lkml@gmail.com>
Date: Tue Feb 21 15:53:39 2006 +0100
Subject: fix git-fmt-merge-msg on activestate perl
---
git-fmt-merge-msg.perl | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)
65ca8f2e90b9816c1748847fc406d26a56b7ad2d
diff --git a/git-fmt-merge-msg.perl b/git-fmt-merge-msg.perl
index 9071312..f4ecd13 100755
--- a/git-fmt-merge-msg.perl
+++ b/git-fmt-merge-msg.perl
@@ -33,7 +33,7 @@ sub repoconfig {
my $fh;
my $val;
eval {
- open $fh, '-|', 'git-repo-config', '--get', 'merge.summary'
+ open($fh, 'git-repo-config --get merge.summary |')
or die "$!";
($val) = <$fh>;
close $fh;
@@ -43,7 +43,7 @@ sub repoconfig {
sub current_branch {
my $fh;
- open $fh, '-|', 'git-symbolic-ref', 'HEAD' or die "$!";
+ open($fh, 'git-symbolic-ref HEAD |') or die "$!";
my ($bra) = <$fh>;
chomp($bra);
$bra =~ s|^refs/heads/||;
@@ -59,8 +59,7 @@ sub current_branch {
sub shortlog {
my ($tip) = @_;
my ($fh, @result);
- open $fh, '-|', ('git-log', '--topo-order',
- '--pretty=oneline', $tip, '^HEAD')
+ open($fh, "git-log --topo-order --pretty=oneline $tip ^HEAD |")
or die "$!";
while (<$fh>) {
s/^[0-9a-f]{40}\s+//;
--
1.2.2.g65ca8
^ permalink raw reply related
* gitk: error on find
From: Michael @ 2006-02-21 13:44 UTC (permalink / raw)
To: git
On GIT repository:
~/git$ git --version
git version 1.2.0
~/git$ gitk --all -d
if I search for "1.0.0" and hit "return", gitk gives:
error:
invalid command name "contmergediff"
invalid command name "contmergediff"
while executing
"contmergediff $ids"
(procedure "gettreediffline" line 14)
invoked from within
"gettreediffline file5 c894168631e4b7da66ed3993a4c92380d38599a8"
...and goes to commit 8d712aafd2df3c1f5147a28947f98cefe667cf76, while the
first commit containing "1.0.0" is c894168631e4b7da66ed3993a4c92380d38599a8
In general, pressing <return> instead of clicking "find", causes gitk to skip
a commit (without other errors). This behaviour is present since (at last)
GIT version 1.0.0.
Searching for "1.0.0" but clicking on "find" gives no errors.
I think "contmergediff" is an old procedure, but I don't know how to fix it
(nor exactly what was meant to do). The error was first introduced with
commit b77b02785d2f589ca336fc449ee1c27837263dac (it was a big change, so the
"contmergediff" line was probably forgotten).
^ permalink raw reply
* [RFC] Using GIT techniques to backup and synchronize file systems - replica
From: Herbert Nachtnebel @ 2006-02-21 13:21 UTC (permalink / raw)
To: git
Hi,
in the last weeks some ideas were floated here on the list to make git
usable not only for source code tracking, but also for synchronizing
mail storage folders or even complete file systems. Time to throw some
code to the list:
http://members.chello.at/replica/replica-20060220-1.tar.gz
In advance of the description of the code, I want to point out some
interesting properties of git. Git has some similarities with two
distinct application areas: backup and synchronisation. Consider the
object database alone, it contains snapshots in time of the state of the
file system - exactly the same what a backup application does.
Currently, git only holds a subset of the complete meta data of the
files in it's database and should gain some support for directory meta
data, non-regular files, statically linked files, and sparse files. But
then it would be comparable to tar or other backup tools.
Regarding the second point, synchronisation with others is clearly what
git is all about. Furthermore, in contrast to synchronising file systems
like coda, intermezzo and what ever they are called, git's merging tools
are far more sophisticated. In fact too sophisticated for synchronizing
file systems. On file systems merging on the level of files is fully
sufficient and without additional knowledge over the properties and
meaning of the individual files even dangerous! Combining these two
points, it is self-evident that git is more than a source code control
system and folks are looking for ways to use it in other ways.
A little drawback of git sacrifices the portability to other
architectures: the frequent use of scripting languages to implement
important parts of functionality. Of course, for git that's an advantage
since the development is so much faster. But for a porting git to
architectures beside Unix, it's a real problem. I for one would love to
use it to synchronize between Sun, Linux and Windows machines in our
department. Additional, when git is used for synchronizing large
datasets, the scripts may easily become a performance bottleneck. I
realize that it is nearly impossible to change git to not depend on
scripting in the near future but for the application I have in mind, I
would like to solve that; that's the cause I started to playing around
with the code presented above.
Speaking of performance, looking on the index file handling code I
suspect that it is not fast enough to handle really large datasets. For
instance, reading an index file is O(N) since it is reading in each
individual dataset and interprets it then. The same applies to
operations on the index file - a pointer to each dataset is held in a
linear array which must be manipulated when inserting or deleting a
dataset - or writing out the index file. I expect that that could be
improved if the layout of the index file is changed slightly; each
dataset should have the same size. And as Linus has recently shown, more
speed improvements could be gained if merging is handled directly on
tree files instead of in the index: more evidence to play around with
some code.
But one difference in the usage pattern between the source code version
control and backup/synchronizing requires some basic changes to the git
algorithms which I suspect will not be acceptable and therefore requires
a distinct implementation: when checking in source code, it is known
that the files checked in do not change on disc. In the case of backup
and synchronization such garanties can _not_ be made. Such an
application should be a background task, hence stopping the generation
of new data or altering existing data is generally no option. But it's
interesting that the git techniques are a natural solution to this
problem: the index file together with the object database allows to
split the task needed to synchronize with other sides into three phases.
First, updating the index from the file system and altering the object
database, then merging the _constant_ index file with the other sides
and finally, updating the file system (may be altered in the mean time)
with the updates stored in the index file, but not altering changed data
in the file system. What does this change in git? Only one basic
assumption. The size of blobs are stored in the blob header and in git
it is assumed, that this size is correct. In the backup/synchronization
usage case this can not be held. During reading-in data files into the
object database they may change their size on disk and the header of the
blob may become out of sync. But this should be tolerated.
In summary, using git techniques for backup and synchronisation is an
interesting possibility, if some shortcomings could be solved. First, it
should handle all file types like tar handles them. Second, the merging
tools should be simplified; merging on file level is sufficient: when
conflicts occure tell the user, but don't try to merge automatically.
Third, it would be fine if it would be completely implemented in C to
make it easily portable. Forth, it should handle any amount of data
efficiently and should be able to synchronize arbitrarily contents
between synchronization partners; of course even complete git
repositories (another hint that that what I have in mind should be
realized outside of git).
And there we go, the presented application, replica, tries to realize
the above points. It is ment to be a distributed synchronization tool.
Think of it as a two-way rsync with a permanent state (therefore
minimizing the workload on the servers). What is implemented so far?
Well, not that much: reading in a filesystem into the object database
and generating tree (filenames converted to unicode) and commit objects
and some debugging code. Therefore, synchronization with other sides is
comming next, but I think, you should be made aware about my current
efforts. One difference to git is the index file handling; it may become
interesting also for git itself. I have tried to implement it in a
simple but efficient way. Basically, may version of the index file is
built up of AVL trees with an 1:1 relationship to the directory tree
store on disk. In difference to git, also directory entries representing
subdirectories are held in the index file together with their meta data.
Hence, even empty directories may be handled as expected by the user.
I want to highlight the realisation of the AVL trees. The most
interesting property of them is that they are position independent. One
is able to map the index file into the memory space and then use it
directly without changing any values in it. Hence, reading the index
file and writing it out is essentially O(1); well, neglecting the time
needed to read the contents from disk or writing it out of course. All
AVL tree pointers are not pointers per se, but are realized as offsets
to their neighbors. I think (and hope), this implementation may prove
useful to be used in git also.
Herbert.
PS.: Sorry about this long posting but hopefully, some may find my work
interesting.
^ permalink raw reply
* What's in git.git (with specific RFHs)
From: Junio C Hamano @ 2006-02-21 11:23 UTC (permalink / raw)
To: git
* The 'master' branch has these since the last announcement.
- more portability bits from Johannes.
I'm holding off Makefile changes because it seems to trigger
"make -j" breakage. Testing, diagnosing and fixing the
version in the 'next' branch by more knowledgeable people is
very much appreciated.
- merge-tree by Linus.
- git-mktree: reverse of git-ls-tree.
I am hoping that this may help a new merge engine based on
merge-tree by Linus, but maybe not. It depends on how you
use merge-tree output.
- loosening "empty ident" errors.
Enough people seem to have been bitten by this since 1.2.0
was released.
- Fix fmt-merge-msg counting.
- cherry-pick/revert: rewording error-help message.
- git-svn updates from Erig Wong (contrib/).
* The 'next' branch, in addition, has these.
- "Assume unchanged git".
I have been using this in production for some time, without
usin CE_VALID, and am reasonably sure this does not break
anything for normal use. I am hoping to push this one to
'master' sometime this week. If people can find missing or
incomplete docs in this part, help is appreciated.
- Solaris 9+ portability bits from Paul Jakma.
Testing by people with Solaris 8 boxes to make sure this does
not regress and/or people with Solaris 9 or 10 boxes to see
if this help is appreciated. Quite likely to be "master"
material without further changes.
- Reusing data from existing packs, and "Thin pack" bandwidth
reduction for "git push" and "git fetch".
I am holding these off not because they are risky (I've been
using them in the production over the long weekend), but I'm
keeping them to entice people to try out the 'next' branch
;-). Quite likely to be "master" material without further
changes.
- Perl 5.6 backward compatibility.
Instead of open($fh, '-|', @list), use a bit older equivalent
form. Thanks for Johannes and Eric Wong. Quite likely to be
"master" material without further changes.
- git-annotate by Ryan and git-blame by Fredrik.
The one by Fredrik, being all in C, doing all git things
internally and forking only diff, seems much faster, but it
seems to have inherited bugs from my original blame script
implementation from long time ago. Ryan's one seems to be
computing sensible results.
* The 'pu' branch, in addition, has these.
- "Bash completion" in Ben Clifford (contrib/)
Without requests from the list, I am not particularly
interested in carrying this in my tree, but I wanted to try
out "an even cooler merge" myself, just like Linus did with
gitk merge.
- "Bound commit" lowlevel machinery for subprojects support.
Honestly, I am not very interested in this myself. If
somebody is interested in gitlink based subproject support,
the parts this touches would interfere with it -- in which
case I'd drop this.
^ 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