Git development
 help / color / mirror / Atom feed
* A couple of TopGit tweaks
@ 2008-09-18 16:29 Kirill Smelkov
  2008-09-18 16:29 ` [TopGit PATCH] .gitignore += vim swap files Kirill Smelkov
                   ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Kirill Smelkov @ 2008-09-18 16:29 UTC (permalink / raw)
  To: Petr Baudis; +Cc: Git Mailing List

Hi,

I'm still learning tg, but in the process I've tweaked 'tg help' for
good and fixed 'tg import'.

Please apply.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [TopGit PATCH] .gitignore += vim swap files
  2008-09-18 16:29 A couple of TopGit tweaks Kirill Smelkov
@ 2008-09-18 16:29 ` Kirill Smelkov
  2008-09-18 17:24   ` martin f krafft
  2008-09-18 17:38   ` Bert Wesarg
  2008-09-18 16:29 ` [TopGit PATCH] tg help: <something>: improve readability Kirill Smelkov
  2008-09-18 16:29 ` [TopGit PATCH] tg import: fix + make more robust Kirill Smelkov
  2 siblings, 2 replies; 22+ messages in thread
From: Kirill Smelkov @ 2008-09-18 16:29 UTC (permalink / raw)
  To: Petr Baudis; +Cc: Git Mailing List, Kirill Smelkov

Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
---
 .gitignore |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore
index 8868f2d..aa39db4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,3 +18,5 @@ tg-import.txt
 tg-remote
 tg-remote.txt
 tg
+
+*.swp
-- 
1.6.0.2.250.g965aa

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [TopGit PATCH] tg help: <something>: improve readability
  2008-09-18 16:29 A couple of TopGit tweaks Kirill Smelkov
  2008-09-18 16:29 ` [TopGit PATCH] .gitignore += vim swap files Kirill Smelkov
@ 2008-09-18 16:29 ` Kirill Smelkov
  2008-09-18 16:29 ` [TopGit PATCH] tg import: fix + make more robust Kirill Smelkov
  2 siblings, 0 replies; 22+ messages in thread
From: Kirill Smelkov @ 2008-09-18 16:29 UTC (permalink / raw)
  To: Petr Baudis; +Cc: Git Mailing List, Kirill Smelkov

Previously tg help was not showing Usage line, and with this change, now it
looks like e.g.:

$ tg help import
Usage: tg [...] import [-p PREFIX] RANGE...

        Import commits within the given revision range into TopGit,
        creating one topic branch per commit, the dependencies forming
        a linear sequence starting on your current branch.

        The branch names are auto-guessed from the commit messages
        and prefixed by t/ by default; use '-p PREFIX' to specify
        an alternative prefix (even an empty one).

Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
---
 tg.sh |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/tg.sh b/tg.sh
index 545e1b8..08975ae 100644
--- a/tg.sh
+++ b/tg.sh
@@ -224,8 +224,12 @@ do_help()
 
 		echo "TopGit v0.3 - A different patch queue manager"
 		echo "Usage: tg [-r REMOTE] ($cmds|help) ..."
-	elif [ -r "@sharedir@/tg-$1.txt" ] ; then
-		cat "@sharedir@/tg-$1.txt"
+	elif [ -r "@cmddir@"/tg-$1 ] ; then
+		@cmddir@/tg-$1 -h || :
+		echo
+		if [ -r "@sharedir@/tg-$1.txt" ] ; then
+			cat "@sharedir@/tg-$1.txt"
+		fi
 	else
 		echo "`basename $0`: no help for $1" 1>&2
 	fi
-- 
1.6.0.2.250.g965aa

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [TopGit PATCH] tg import: fix + make more robust
  2008-09-18 16:29 A couple of TopGit tweaks Kirill Smelkov
  2008-09-18 16:29 ` [TopGit PATCH] .gitignore += vim swap files Kirill Smelkov
  2008-09-18 16:29 ` [TopGit PATCH] tg help: <something>: improve readability Kirill Smelkov
@ 2008-09-18 16:29 ` Kirill Smelkov
  2 siblings, 0 replies; 22+ messages in thread
From: Kirill Smelkov @ 2008-09-18 16:29 UTC (permalink / raw)
  To: Petr Baudis; +Cc: Git Mailing List, Kirill Smelkov

a5bf892d0900cbf9949f628c3e05db599341a02c (tg import: Check out new files
as we go) broke tg-import. This is how it fails after that change:

    $ tg import Z~~..Z
    tg: ---- Importing e3e8c1382fe4cedca31e955910914ae0033455eb to t/Z
    tg: Automatically marking dependency on master
    tg: Creating t/Z base from master...
    Switched to a new branch "t/Z"
    tg: Topic branch t/Z set up. Please fill .topmsg now and make initial commit.
    tg: To abort: git rm -f .top* && git checkout master && tg delete t/Z
    fatal: pathspec '.topdeps' did not match any files

That's why, when we do git read-tree -u -m it _kills_ .topmsg and
.topdep both in index and in working tree!

Also, imagine that we are going to import patch C onto A

o---B---A
     \
      C

With read-tree we'll *override* any change in common files between A and
B, so I think read-tree is wrong here (it was ok if we are importing
on top of B).

What is right it seems, is to work on diff level -- to use cherry-pick.
And since cherry-pick does not kill our already-in-index .topmsg and
.topdeps we automatically fix the breakage.

Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
---
 tg-import.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/tg-import.sh b/tg-import.sh
index 68477f0..799efc9 100644
--- a/tg-import.sh
+++ b/tg-import.sh
@@ -61,7 +61,7 @@ process_commit()
 	branch_name=$(get_branch_name "$commit")
 	info "---- Importing $commit to $branch_prefix$branch_name"
 	tg create "$branch_prefix""$branch_name"
-	git read-tree -u -m "$commit"
+	git cherry-pick --no-commit "$commit"
 	get_commit_msg "$commit" > .topmsg
 	git add -f .topmsg .topdeps
 	git commit -C "$commit"
-- 
1.6.0.2.250.g965aa

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [TopGit PATCH] .gitignore += vim swap files
  2008-09-18 16:29 ` [TopGit PATCH] .gitignore += vim swap files Kirill Smelkov
@ 2008-09-18 17:24   ` martin f krafft
  2008-09-18 17:30     ` Kirill Smelkov
  2008-09-18 17:38   ` Bert Wesarg
  1 sibling, 1 reply; 22+ messages in thread
From: martin f krafft @ 2008-09-18 17:24 UTC (permalink / raw)
  To: Kirill Smelkov, Petr Baudis, Git Mailing List

[-- Attachment #1: Type: text/plain, Size: 437 bytes --]

also sprach Kirill Smelkov <kirr@landau.phys.spbu.ru> [2008.09.18.1729 +0100]:
> +
> +*.swp

This should be .*.sw?

-- 
martin | http://madduck.net/ | http://two.sentenc.es/
 
"and no one sings me lullabies,
 and no one makes me close my eyes,
 and so i throw the windows wide,
 and call to you across the sky"
                                                   -- pink floyd, 1971
 
spamtraps: madduck.bogus@madduck.net

[-- Attachment #2: Digital signature (see http://martin-krafft.net/gpg/) --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [TopGit PATCH] .gitignore += vim swap files
  2008-09-18 17:24   ` martin f krafft
@ 2008-09-18 17:30     ` Kirill Smelkov
  0 siblings, 0 replies; 22+ messages in thread
From: Kirill Smelkov @ 2008-09-18 17:30 UTC (permalink / raw)
  To: martin f krafft; +Cc: Kirill Smelkov, Petr Baudis, Git Mailing List

On Thu, Sep 18, 2008 at 06:24:18PM +0100, martin f krafft wrote:
> also sprach Kirill Smelkov <kirr@landau.phys.spbu.ru> [2008.09.18.1729 +0100]:
> > +
> > +*.swp
> 
> This should be .*.sw?

Right.

Should I resend the patch or will Petr correct it when applying?

-- 
    Всего хорошего, Кирилл.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [TopGit PATCH] .gitignore += vim swap files
  2008-09-18 16:29 ` [TopGit PATCH] .gitignore += vim swap files Kirill Smelkov
  2008-09-18 17:24   ` martin f krafft
@ 2008-09-18 17:38   ` Bert Wesarg
  2008-09-18 17:43     ` Kirill Smelkov
                       ` (2 more replies)
  1 sibling, 3 replies; 22+ messages in thread
From: Bert Wesarg @ 2008-09-18 17:38 UTC (permalink / raw)
  To: Kirill Smelkov; +Cc: Petr Baudis, Git Mailing List

On Thu, Sep 18, 2008 at 18:29, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
> Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
> ---
>  .gitignore |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/.gitignore b/.gitignore
> index 8868f2d..aa39db4 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -18,3 +18,5 @@ tg-import.txt
>  tg-remote
>  tg-remote.txt
>  tg
> +
> +*.swp
can't you do this in your .git/info/excludes?

bert
> --
> 1.6.0.2.250.g965aa
>
> --
> 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	[flat|nested] 22+ messages in thread

* Re: [TopGit PATCH] .gitignore += vim swap files
  2008-09-18 17:38   ` Bert Wesarg
@ 2008-09-18 17:43     ` Kirill Smelkov
  2008-09-18 17:56       ` Bert Wesarg
  2008-09-18 17:54     ` martin f krafft
  2008-09-18 19:30     ` Daniel Barkalow
  2 siblings, 1 reply; 22+ messages in thread
From: Kirill Smelkov @ 2008-09-18 17:43 UTC (permalink / raw)
  To: Bert Wesarg; +Cc: Kirill Smelkov, Petr Baudis, Git Mailing List

On Thu, Sep 18, 2008 at 07:38:58PM +0200, Bert Wesarg wrote:
> On Thu, Sep 18, 2008 at 18:29, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
> > Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
> > ---
> >  .gitignore |    2 ++
> >  1 files changed, 2 insertions(+), 0 deletions(-)
> >
> > diff --git a/.gitignore b/.gitignore
> > index 8868f2d..aa39db4 100644
> > --- a/.gitignore
> > +++ b/.gitignore
> > @@ -18,3 +18,5 @@ tg-import.txt
> >  tg-remote
> >  tg-remote.txt
> >  tg
> > +
> > +*.swp
> can't you do this in your .git/info/excludes?
> 
> bert

I sure can, but I think the question is what is the most convenient, and
for me it is convenient to start hacking right on fresh topgit clone.


Also, if you'll look e.g. here:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=.gitignore;h=869e1a3b64b6bf969eeced820691e955e03e3068;hb=HEAD#l65

It seems emacs is supported in Linux kernel, so I'm slowly restoring the
balance in favour of vim :)

-- 
    Всего хорошего, Кирилл.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [TopGit PATCH] .gitignore += vim swap files
  2008-09-18 17:56       ` Bert Wesarg
@ 2008-09-18 17:50         ` Kirill Smelkov
  0 siblings, 0 replies; 22+ messages in thread
From: Kirill Smelkov @ 2008-09-18 17:50 UTC (permalink / raw)
  To: Bert Wesarg; +Cc: Kirill Smelkov, Petr Baudis, Git Mailing List

On Thu, Sep 18, 2008 at 07:56:40PM +0200, Bert Wesarg wrote:
> On Thu, Sep 18, 2008 at 19:43, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
> > On Thu, Sep 18, 2008 at 07:38:58PM +0200, Bert Wesarg wrote:
> >> On Thu, Sep 18, 2008 at 18:29, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
> >> > Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
> >> > ---
> >> >  .gitignore |    2 ++
> >> >  1 files changed, 2 insertions(+), 0 deletions(-)
> >> >
> >> > diff --git a/.gitignore b/.gitignore
> >> > index 8868f2d..aa39db4 100644
> >> > --- a/.gitignore
> >> > +++ b/.gitignore
> >> > @@ -18,3 +18,5 @@ tg-import.txt
> >> >  tg-remote
> >> >  tg-remote.txt
> >> >  tg
> >> > +
> >> > +*.swp
> >> can't you do this in your .git/info/excludes?
> >>
> >> bert
> >
> > I sure can, but I think the question is what is the most convenient, and
> > for me it is convenient to start hacking right on fresh topgit clone.
> >
> >
> > Also, if you'll look e.g. here:
> >
> > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=.gitignore;h=869e1a3b64b6bf969eeced820691e955e03e3068;hb=HEAD#l65
> >
> > It seems emacs is supported in Linux kernel, so I'm slowly restoring the
> > balance in favour of vim :)
> than I want a pattern for NEdit too:
> 
> ~*

I'm not against :)

-- 
    Всего хорошего, Кирилл.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [TopGit PATCH] .gitignore += vim swap files
  2008-09-18 17:38   ` Bert Wesarg
  2008-09-18 17:43     ` Kirill Smelkov
@ 2008-09-18 17:54     ` martin f krafft
  2008-09-18 19:30     ` Daniel Barkalow
  2 siblings, 0 replies; 22+ messages in thread
From: martin f krafft @ 2008-09-18 17:54 UTC (permalink / raw)
  To: Bert Wesarg, Kirill Smelkov, Petr Baudis, Git Mailing List

[-- Attachment #1: Type: text/plain, Size: 644 bytes --]

also sprach Bert Wesarg <bert.wesarg@googlemail.com> [2008.09.18.1838 +0100]:
> can't you do this in your .git/info/excludes?

Of course, but then I'd have to do it too, and on all machines where
I have a topgit clone.

martin, who'd love to see '/*-stamp' added to the .gitignore file
too to hide the temporary files created during the Debian build;
mdadm recently added it. :)

-- 
martin | http://madduck.net/ | http://two.sentenc.es/
 
"in diving to the bottom of pleasure
 we bring up more gravel than pearls."
                                                   -- honoré de balzac
 
spamtraps: madduck.bogus@madduck.net

[-- Attachment #2: Digital signature (see http://martin-krafft.net/gpg/) --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [TopGit PATCH] .gitignore += vim swap files
  2008-09-18 17:43     ` Kirill Smelkov
@ 2008-09-18 17:56       ` Bert Wesarg
  2008-09-18 17:50         ` Kirill Smelkov
  0 siblings, 1 reply; 22+ messages in thread
From: Bert Wesarg @ 2008-09-18 17:56 UTC (permalink / raw)
  To: Kirill Smelkov; +Cc: Petr Baudis, Git Mailing List

On Thu, Sep 18, 2008 at 19:43, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
> On Thu, Sep 18, 2008 at 07:38:58PM +0200, Bert Wesarg wrote:
>> On Thu, Sep 18, 2008 at 18:29, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
>> > Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
>> > ---
>> >  .gitignore |    2 ++
>> >  1 files changed, 2 insertions(+), 0 deletions(-)
>> >
>> > diff --git a/.gitignore b/.gitignore
>> > index 8868f2d..aa39db4 100644
>> > --- a/.gitignore
>> > +++ b/.gitignore
>> > @@ -18,3 +18,5 @@ tg-import.txt
>> >  tg-remote
>> >  tg-remote.txt
>> >  tg
>> > +
>> > +*.swp
>> can't you do this in your .git/info/excludes?
>>
>> bert
>
> I sure can, but I think the question is what is the most convenient, and
> for me it is convenient to start hacking right on fresh topgit clone.
>
>
> Also, if you'll look e.g. here:
>
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=.gitignore;h=869e1a3b64b6bf969eeced820691e955e03e3068;hb=HEAD#l65
>
> It seems emacs is supported in Linux kernel, so I'm slowly restoring the
> balance in favour of vim :)
than I want a pattern for NEdit too:

~*

Bert
>
> --
>    Всего хорошего, Кирилл.
>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [TopGit PATCH] .gitignore += vim swap files
  2008-09-18 17:38   ` Bert Wesarg
  2008-09-18 17:43     ` Kirill Smelkov
  2008-09-18 17:54     ` martin f krafft
@ 2008-09-18 19:30     ` Daniel Barkalow
  2008-09-19  5:06       ` Kirill Smelkov
  2 siblings, 1 reply; 22+ messages in thread
From: Daniel Barkalow @ 2008-09-18 19:30 UTC (permalink / raw)
  To: Bert Wesarg; +Cc: Kirill Smelkov, Petr Baudis, Git Mailing List

On Thu, 18 Sep 2008, Bert Wesarg wrote:

> On Thu, Sep 18, 2008 at 18:29, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
> > Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
> > ---
> >  .gitignore |    2 ++
> >  1 files changed, 2 insertions(+), 0 deletions(-)
> >
> > diff --git a/.gitignore b/.gitignore
> > index 8868f2d..aa39db4 100644
> > --- a/.gitignore
> > +++ b/.gitignore
> > @@ -18,3 +18,5 @@ tg-import.txt
> >  tg-remote
> >  tg-remote.txt
> >  tg
> > +
> > +*.swp
> can't you do this in your .git/info/excludes?

It's generally better to put a core.excludesfile entry in your 
~/.gitconfig pointing to a ignore file with editor temporaries for the 
editor(s) you personally use. This will then apply to all git projects you 
work on.

	-Daniel
*This .sig left intentionally blank*

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [TopGit PATCH] .gitignore += vim swap files
  2008-09-18 19:30     ` Daniel Barkalow
@ 2008-09-19  5:06       ` Kirill Smelkov
  2008-09-19  7:10         ` Bert Wesarg
  2008-09-19 14:22         ` Default exclude rules for Git Petr Baudis
  0 siblings, 2 replies; 22+ messages in thread
From: Kirill Smelkov @ 2008-09-19  5:06 UTC (permalink / raw)
  To: Daniel Barkalow
  Cc: Bert Wesarg, Kirill Smelkov, Petr Baudis, Git Mailing List

On Thu, Sep 18, 2008 at 03:30:35PM -0400, Daniel Barkalow wrote:
> On Thu, 18 Sep 2008, Bert Wesarg wrote:
> 
> > On Thu, Sep 18, 2008 at 18:29, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
> > > Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
> > > ---
> > >  .gitignore |    2 ++
> > >  1 files changed, 2 insertions(+), 0 deletions(-)
> > >
> > > diff --git a/.gitignore b/.gitignore
> > > index 8868f2d..aa39db4 100644
> > > --- a/.gitignore
> > > +++ b/.gitignore
> > > @@ -18,3 +18,5 @@ tg-import.txt
> > >  tg-remote
> > >  tg-remote.txt
> > >  tg
> > > +
> > > +*.swp
> > can't you do this in your .git/info/excludes?
> 
> It's generally better to put a core.excludesfile entry in your 
> ~/.gitconfig pointing to a ignore file with editor temporaries for the 
> editor(s) you personally use. This will then apply to all git projects you 
> work on.

Yes, this makes sense, thanks.

I've had to add the following to my ~/.gitconfig

[core]
    excludesfile= /home/kirr/.gitignore-kirr


because it does not work when '~' is used for $HOME

[core]
    excludesfile= ~/.gitignore-kirr # does not work


Is it intended?


Still I think since a lot of people have to do the same operation, maybe
it makes sense to put ignores for popular tools right into project's
.gitignore.

-- 
    Всего хорошего, Кирилл.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [TopGit PATCH] .gitignore += vim swap files
  2008-09-19  5:06       ` Kirill Smelkov
@ 2008-09-19  7:10         ` Bert Wesarg
  2008-09-19  7:28           ` Kirill Smelkov
  2008-09-19 14:22         ` Default exclude rules for Git Petr Baudis
  1 sibling, 1 reply; 22+ messages in thread
From: Bert Wesarg @ 2008-09-19  7:10 UTC (permalink / raw)
  To: Kirill Smelkov; +Cc: Daniel Barkalow, Petr Baudis, Git Mailing List

On Fri, Sep 19, 2008 at 07:06, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
> On Thu, Sep 18, 2008 at 03:30:35PM -0400, Daniel Barkalow wrote:
>> On Thu, 18 Sep 2008, Bert Wesarg wrote:
>>
>> > On Thu, Sep 18, 2008 at 18:29, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
>> > > Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
>> > > ---
>> > >  .gitignore |    2 ++
>> > >  1 files changed, 2 insertions(+), 0 deletions(-)
>> > >
>> > > diff --git a/.gitignore b/.gitignore
>> > > index 8868f2d..aa39db4 100644
>> > > --- a/.gitignore
>> > > +++ b/.gitignore
>> > > @@ -18,3 +18,5 @@ tg-import.txt
>> > >  tg-remote
>> > >  tg-remote.txt
>> > >  tg
>> > > +
>> > > +*.swp
>> > can't you do this in your .git/info/excludes?
>>
>> It's generally better to put a core.excludesfile entry in your
>> ~/.gitconfig pointing to a ignore file with editor temporaries for the
>> editor(s) you personally use. This will then apply to all git projects you
>> work on.
>
> Yes, this makes sense, thanks.
>
> I've had to add the following to my ~/.gitconfig
>
> [core]
>    excludesfile= /home/kirr/.gitignore-kirr
>
>
> because it does not work when '~' is used for $HOME
>
> [core]
>    excludesfile= ~/.gitignore-kirr # does not work
Have you tried:

  [core]
     excludesfile = .gitignore-kirr

There was a discussion about relative files in config. but I didn't tried this.

Anyway, I think this is the best solution. Don't globber the repos with this.

Bert

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [TopGit PATCH] .gitignore += vim swap files
  2008-09-19  7:10         ` Bert Wesarg
@ 2008-09-19  7:28           ` Kirill Smelkov
  2008-09-19  7:51             ` Andreas Ericsson
  2008-09-19 10:50             ` Bert Wesarg
  0 siblings, 2 replies; 22+ messages in thread
From: Kirill Smelkov @ 2008-09-19  7:28 UTC (permalink / raw)
  To: Bert Wesarg
  Cc: Kirill Smelkov, Daniel Barkalow, Petr Baudis, Git Mailing List

On Fri, Sep 19, 2008 at 09:10:24AM +0200, Bert Wesarg wrote:
> On Fri, Sep 19, 2008 at 07:06, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
> > On Thu, Sep 18, 2008 at 03:30:35PM -0400, Daniel Barkalow wrote:
> >> On Thu, 18 Sep 2008, Bert Wesarg wrote:
> >>
> >> > On Thu, Sep 18, 2008 at 18:29, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
> >> > > Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
> >> > > ---
> >> > >  .gitignore |    2 ++
> >> > >  1 files changed, 2 insertions(+), 0 deletions(-)
> >> > >
> >> > > diff --git a/.gitignore b/.gitignore
> >> > > index 8868f2d..aa39db4 100644
> >> > > --- a/.gitignore
> >> > > +++ b/.gitignore
> >> > > @@ -18,3 +18,5 @@ tg-import.txt
> >> > >  tg-remote
> >> > >  tg-remote.txt
> >> > >  tg
> >> > > +
> >> > > +*.swp
> >> > can't you do this in your .git/info/excludes?
> >>
> >> It's generally better to put a core.excludesfile entry in your
> >> ~/.gitconfig pointing to a ignore file with editor temporaries for the
> >> editor(s) you personally use. This will then apply to all git projects you
> >> work on.
> >
> > Yes, this makes sense, thanks.
> >
> > I've had to add the following to my ~/.gitconfig
> >
> > [core]
> >    excludesfile= /home/kirr/.gitignore-kirr
> >
> >
> > because it does not work when '~' is used for $HOME
> >
> > [core]
> >    excludesfile= ~/.gitignore-kirr # does not work
> Have you tried:
> 
>   [core]
>      excludesfile = .gitignore-kirr
> There was a discussion about relative files in config. but I didn't tried this.

It does not work for me -- it picks ./.gitignore-kirr instead of
~/.gitignore-kirr

> Anyway, I think this is the best solution. Don't globber the repos with this.

Don't you care more about machines than humans? :)

I think when we work on a tree, all the autogenerated files should be
ignored. This includes *.o and friends for sure, but since we also use
editors, and most people use same editors it makes sense to tune repo to
be ready to hack on with common setups.

And I think this

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7088655477b51a5a248fa54190388e1283ba7ebf

just justifies my words.

-- 
    Всего хорошего, Кирилл.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [TopGit PATCH] .gitignore += vim swap files
  2008-09-19  7:28           ` Kirill Smelkov
@ 2008-09-19  7:51             ` Andreas Ericsson
  2008-09-19  7:52               ` Kirill Smelkov
  2008-09-19 10:50             ` Bert Wesarg
  1 sibling, 1 reply; 22+ messages in thread
From: Andreas Ericsson @ 2008-09-19  7:51 UTC (permalink / raw)
  To: Kirill Smelkov
  Cc: Bert Wesarg, Daniel Barkalow, Petr Baudis, Git Mailing List

Kirill Smelkov wrote:
> On Fri, Sep 19, 2008 at 09:10:24AM +0200, Bert Wesarg wrote:
>> On Fri, Sep 19, 2008 at 07:06, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
>>> On Thu, Sep 18, 2008 at 03:30:35PM -0400, Daniel Barkalow wrote:
>>>> On Thu, 18 Sep 2008, Bert Wesarg wrote:
>>>>
>>>>> On Thu, Sep 18, 2008 at 18:29, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
>>>>>> Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
>>>>>> ---
>>>>>>  .gitignore |    2 ++
>>>>>>  1 files changed, 2 insertions(+), 0 deletions(-)
>>>>>>
>>>>>> diff --git a/.gitignore b/.gitignore
>>>>>> index 8868f2d..aa39db4 100644
>>>>>> --- a/.gitignore
>>>>>> +++ b/.gitignore
>>>>>> @@ -18,3 +18,5 @@ tg-import.txt
>>>>>>  tg-remote
>>>>>>  tg-remote.txt
>>>>>>  tg
>>>>>> +
>>>>>> +*.swp
>>>>> can't you do this in your .git/info/excludes?
>>>> It's generally better to put a core.excludesfile entry in your
>>>> ~/.gitconfig pointing to a ignore file with editor temporaries for the
>>>> editor(s) you personally use. This will then apply to all git projects you
>>>> work on.
>>> Yes, this makes sense, thanks.
>>>
>>> I've had to add the following to my ~/.gitconfig
>>>
>>> [core]
>>>    excludesfile= /home/kirr/.gitignore-kirr
>>>
>>>
>>> because it does not work when '~' is used for $HOME
>>>
>>> [core]
>>>    excludesfile= ~/.gitignore-kirr # does not work
>> Have you tried:
>>
>>   [core]
>>      excludesfile = .gitignore-kirr
>> There was a discussion about relative files in config. but I didn't tried this.
> 
> It does not work for me -- it picks ./.gitignore-kirr instead of
> ~/.gitignore-kirr
> 
>> Anyway, I think this is the best solution. Don't globber the repos with this.
> 
> Don't you care more about machines than humans? :)
> 
> I think when we work on a tree, all the autogenerated files should be
> ignored. This includes *.o and friends for sure, but since we also use
> editors, and most people use same editors it makes sense to tune repo to
> be ready to hack on with common setups.
> 

Most people do not use same editors. In our office there's 8 programmers
and 6 editors in use (geany, jed, vim, nedit, zend studio, kate).

> And I think this
> 
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7088655477b51a5a248fa54190388e1283ba7ebf
> 
> just justifies my words.
> 

If topgit had 4374 contributors since 10 minor versions back, I'd be
more inclined to agree with you. Even so, you'll have to accept that
this patch gets dropped[1] and stop trying to argue for it after it's
already been discussed (at length).

[1]
I'm not too sure who the topgit maintainer actually is, but the majority
seem to be against this patch.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [TopGit PATCH] .gitignore += vim swap files
  2008-09-19  7:51             ` Andreas Ericsson
@ 2008-09-19  7:52               ` Kirill Smelkov
  0 siblings, 0 replies; 22+ messages in thread
From: Kirill Smelkov @ 2008-09-19  7:52 UTC (permalink / raw)
  To: Andreas Ericsson
  Cc: Kirill Smelkov, Bert Wesarg, Daniel Barkalow, Petr Baudis,
	Git Mailing List

On Fri, Sep 19, 2008 at 09:51:25AM +0200, Andreas Ericsson wrote:
> Kirill Smelkov wrote:
>> On Fri, Sep 19, 2008 at 09:10:24AM +0200, Bert Wesarg wrote:
>>> On Fri, Sep 19, 2008 at 07:06, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
>>>> On Thu, Sep 18, 2008 at 03:30:35PM -0400, Daniel Barkalow wrote:
>>>>> On Thu, 18 Sep 2008, Bert Wesarg wrote:
>>>>>
>>>>>> On Thu, Sep 18, 2008 at 18:29, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
>>>>>>> Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
>>>>>>> ---
>>>>>>>  .gitignore |    2 ++
>>>>>>>  1 files changed, 2 insertions(+), 0 deletions(-)
>>>>>>>
>>>>>>> diff --git a/.gitignore b/.gitignore
>>>>>>> index 8868f2d..aa39db4 100644
>>>>>>> --- a/.gitignore
>>>>>>> +++ b/.gitignore
>>>>>>> @@ -18,3 +18,5 @@ tg-import.txt
>>>>>>>  tg-remote
>>>>>>>  tg-remote.txt
>>>>>>>  tg
>>>>>>> +
>>>>>>> +*.swp
>>>>>> can't you do this in your .git/info/excludes?
>>>>> It's generally better to put a core.excludesfile entry in your
>>>>> ~/.gitconfig pointing to a ignore file with editor temporaries for the
>>>>> editor(s) you personally use. This will then apply to all git projects you
>>>>> work on.
>>>> Yes, this makes sense, thanks.
>>>>
>>>> I've had to add the following to my ~/.gitconfig
>>>>
>>>> [core]
>>>>    excludesfile= /home/kirr/.gitignore-kirr
>>>>
>>>>
>>>> because it does not work when '~' is used for $HOME
>>>>
>>>> [core]
>>>>    excludesfile= ~/.gitignore-kirr # does not work
>>> Have you tried:
>>>
>>>   [core]
>>>      excludesfile = .gitignore-kirr
>>> There was a discussion about relative files in config. but I didn't tried this.
>>
>> It does not work for me -- it picks ./.gitignore-kirr instead of
>> ~/.gitignore-kirr
>>
>>> Anyway, I think this is the best solution. Don't globber the repos with this.
>>
>> Don't you care more about machines than humans? :)
>>
>> I think when we work on a tree, all the autogenerated files should be
>> ignored. This includes *.o and friends for sure, but since we also use
>> editors, and most people use same editors it makes sense to tune repo to
>> be ready to hack on with common setups.
>>
>
> Most people do not use same editors. In our office there's 8 programmers
> and 6 editors in use (geany, jed, vim, nedit, zend studio, kate).
>
>> And I think this
>>
>> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7088655477b51a5a248fa54190388e1283ba7ebf
>>
>> just justifies my words.
>>
>
> If topgit had 4374 contributors since 10 minor versions back, I'd be
> more inclined to agree with you. Even so, you'll have to accept that
> this patch gets dropped[1] and stop trying to argue for it after it's
> already been discussed (at length).
>
> [1]
> I'm not too sure who the topgit maintainer actually is, but the majority
> seem to be against this patch.

I'm ok with this patch being dropped.

-- 
    Всего хорошего, Кирилл.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [TopGit PATCH] .gitignore += vim swap files
  2008-09-19  7:28           ` Kirill Smelkov
  2008-09-19  7:51             ` Andreas Ericsson
@ 2008-09-19 10:50             ` Bert Wesarg
  1 sibling, 0 replies; 22+ messages in thread
From: Bert Wesarg @ 2008-09-19 10:50 UTC (permalink / raw)
  To: Kirill Smelkov; +Cc: Daniel Barkalow, Petr Baudis, Git Mailing List

On Fri, Sep 19, 2008 at 09:28, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
> On Fri, Sep 19, 2008 at 09:10:24AM +0200, Bert Wesarg wrote:
>> On Fri, Sep 19, 2008 at 07:06, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
>> > On Thu, Sep 18, 2008 at 03:30:35PM -0400, Daniel Barkalow wrote:
>> >> On Thu, 18 Sep 2008, Bert Wesarg wrote:
>> >>
>> >> > On Thu, Sep 18, 2008 at 18:29, Kirill Smelkov <kirr@landau.phys.spbu.ru> wrote:
>> >> > > Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
>> >> > > ---
>> >> > >  .gitignore |    2 ++
>> >> > >  1 files changed, 2 insertions(+), 0 deletions(-)
>> >> > >
>> >> > > diff --git a/.gitignore b/.gitignore
>> >> > > index 8868f2d..aa39db4 100644
>> >> > > --- a/.gitignore
>> >> > > +++ b/.gitignore
>> >> > > @@ -18,3 +18,5 @@ tg-import.txt
>> >> > >  tg-remote
>> >> > >  tg-remote.txt
>> >> > >  tg
>> >> > > +
>> >> > > +*.swp
>> >> > can't you do this in your .git/info/excludes?
>> >>
>> >> It's generally better to put a core.excludesfile entry in your
>> >> ~/.gitconfig pointing to a ignore file with editor temporaries for the
>> >> editor(s) you personally use. This will then apply to all git projects you
>> >> work on.
>> >
>> > Yes, this makes sense, thanks.
>> >
>> > I've had to add the following to my ~/.gitconfig
>> >
>> > [core]
>> >    excludesfile= /home/kirr/.gitignore-kirr
>> >
>> >
>> > because it does not work when '~' is used for $HOME
>> >
>> > [core]
>> >    excludesfile= ~/.gitignore-kirr # does not work
>> Have you tried:
>>
>>   [core]
>>      excludesfile = .gitignore-kirr
>> There was a discussion about relative files in config. but I didn't tried this.
>
> It does not work for me -- it picks ./.gitignore-kirr instead of
> ~/.gitignore-kirr
I found the thread with exactly this problem:

http://thread.gmane.org/gmane.comp.version-control.git/93250

Bert

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Default exclude rules for Git
  2008-09-19  5:06       ` Kirill Smelkov
  2008-09-19  7:10         ` Bert Wesarg
@ 2008-09-19 14:22         ` Petr Baudis
  2008-09-19 15:46           ` Junio C Hamano
  1 sibling, 1 reply; 22+ messages in thread
From: Petr Baudis @ 2008-09-19 14:22 UTC (permalink / raw)
  To: Kirill Smelkov; +Cc: Daniel Barkalow, Bert Wesarg, Git Mailing List

On Fri, Sep 19, 2008 at 09:06:12AM +0400, Kirill Smelkov wrote:
> On Thu, Sep 18, 2008 at 03:30:35PM -0400, Daniel Barkalow wrote:
> > It's generally better to put a core.excludesfile entry in your 
> > ~/.gitconfig pointing to a ignore file with editor temporaries for the 
> > editor(s) you personally use. This will then apply to all git projects you 
> > work on.
> 
> Yes, this makes sense, thanks.
> 
> I've had to add the following to my ~/.gitconfig
> 
> [core]
>     excludesfile= /home/kirr/.gitignore-kirr
> 
> 
> because it does not work when '~' is used for $HOME
> 
> [core]
>     excludesfile= ~/.gitignore-kirr # does not work
> 
> 
> Is it intended?
> 
> 
> Still I think since a lot of people have to do the same operation, maybe
> it makes sense to put ignores for popular tools right into project's
> .gitignore.

I'm reluctant to put these universal rules to a project-specific
.gitignores, that doesn't feel like the proper solution to me.

I think it would actually make most sense to insert some conservative
default ignore rules to the Git's stock excludes template. (Or better,
have a single file with default Git's exclude rules. Tools newly
installed on the system could even add their entries there during
installation as Git's quest on world dominations progresses.) I'd
shamelessly propose Cogito's set of default excludes for starters:

	*.[ao]
	.*
	!.git*
	tags
	*~
	#*

(or omit the first line if that feels too C-specific - but I think it
should be extremely rare to find files you _want_ to track even in non-C
projects; and I'd argue anytime that by default ignoring hidden files
is absolutely the sanest thing to do.)

I'm not sure if there wouldn't be opposition from others to this,
though. Especially as Junio is extra-careful about backwards
compatibility now after 1.6.0. :-(

-- 
				Petr "Pasky" Baudis
The next generation of interesting software will be done
on the Macintosh, not the IBM PC.  -- Bill Gates

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Default exclude rules for Git
  2008-09-19 14:22         ` Default exclude rules for Git Petr Baudis
@ 2008-09-19 15:46           ` Junio C Hamano
  2008-09-19 16:33             ` Petr Baudis
  0 siblings, 1 reply; 22+ messages in thread
From: Junio C Hamano @ 2008-09-19 15:46 UTC (permalink / raw)
  To: Petr Baudis
  Cc: Kirill Smelkov, Daniel Barkalow, Bert Wesarg, Git Mailing List

Petr Baudis <pasky@suse.cz> writes:

> I think it would actually make most sense to insert some conservative
> default ignore rules to the Git's stock excludes template. (Or better,
> have a single file with default Git's exclude rules. Tools newly
> installed on the system could even add their entries there during
> installation as Git's quest on world dominations progresses.) I'd
> shamelessly propose Cogito's set of default excludes for starters:
>
> 	*.[ao]
> 	.*
> 	!.git*
> 	tags
> 	*~
> 	#*
>
> (or omit the first line if that feels too C-specific - but I think it
> should be extremely rare to find files you _want_ to track even in non-C
> projects; and I'd argue anytime that by default ignoring hidden files
> is absolutely the sanest thing to do.)

I do not see a need to change any canned template shipped with git.  I
actually think it is a grave regression to add anything arbitrary, even if
one person happens to think the choice is conservative, to the set of
tool-wide ignore patterns.  And here is why.

I haven't personally seen any project that wants its users to _edit_ a
file whose names end with ".a" or ".o" and track it.  That does not
however mean that there can be no project and/or environment that validly
wants to track files with ".o" suffix (isn't it the case that windows shop
use ".obj" for object files and ".o" suffix do not have any particular
meaning to them?)  By placing "*.o" to tool-wide ignore file, your version
of git is making life for participants in such a project harder because
they can now easily forget to add a newly created "*.o" files (status
won't show them).  The tool should be extremely conservative not to
encourage such mistakes.

The best place to express such a project wide policy (e.g. "in this
project, '*.o' files will never, or rarely if ever, be tracked and we
expect our developers to appreciate not seeing them in status output by
default") is a tracked .gitignore file.

I earlier said that "*~" should not be in project-wide .gitignore file
because use of Emacs vs vi is a matter of personal taste, and Emacs
specific "*~" pattern does not belong to a project policy, just like
vim "*.swp" pattern doesn't.

But I think that reasoning is flawed.  The right criteria should not be
about "use of Emacs vs vi", but about "do we in this project ever want to
track files that match *~ or *.swp as legitimate contents".  If a project
expects not to have a tracked file whose name ends with ".swp", even if it
does _not_ mean to encourage use of vim over Emacs or any other editor, I
think it is fine to add such to its tracked .gitignore file for its
developer's benefit.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Default exclude rules for Git
  2008-09-19 15:46           ` Junio C Hamano
@ 2008-09-19 16:33             ` Petr Baudis
  2008-09-19 16:42               ` Avery Pennarun
  0 siblings, 1 reply; 22+ messages in thread
From: Petr Baudis @ 2008-09-19 16:33 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: Kirill Smelkov, Daniel Barkalow, Bert Wesarg, Git Mailing List

On Fri, Sep 19, 2008 at 08:46:34AM -0700, Junio C Hamano wrote:
> I do not see a need to change any canned template shipped with git.  I
> actually think it is a grave regression to add anything arbitrary, even if
> one person happens to think the choice is conservative, to the set of
> tool-wide ignore patterns.  And here is why.
> 
> I haven't personally seen any project that wants its users to _edit_ a
> file whose names end with ".a" or ".o" and track it.  That does not
> however mean that there can be no project and/or environment that validly
> wants to track files with ".o" suffix (isn't it the case that windows shop
> use ".obj" for object files and ".o" suffix do not have any particular
> meaning to them?)  By placing "*.o" to tool-wide ignore file, your version
> of git is making life for participants in such a project harder because
> they can now easily forget to add a newly created "*.o" files (status
> won't show them).  The tool should be extremely conservative not to
> encourage such mistakes.
> 
> The best place to express such a project wide policy (e.g. "in this
> project, '*.o' files will never, or rarely if ever, be tracked and we
> expect our developers to appreciate not seeing them in status output by
> default") is a tracked .gitignore file.

Yes, but the idea here is to give both the projects and the users
sensible default to work on, in case of users even one that might change
system to system based on tools behavior. It is that VAST MAJORITY of
projects won't care about object or (most kinds of) hidden files, so to
me it makes sense to make people opt out instead of opt in.

If a particular policy is unsuitable for some (rare) project, it can
still undo the ignore rules by adding !*.o to its .gitignore file. The
only issue is that this gets noticed first time a particular new ignore
pattern appears, and I admit I don't have a good solution here.

-- 
				Petr "Pasky" Baudis
The next generation of interesting software will be done
on the Macintosh, not the IBM PC.  -- Bill Gates

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Default exclude rules for Git
  2008-09-19 16:33             ` Petr Baudis
@ 2008-09-19 16:42               ` Avery Pennarun
  0 siblings, 0 replies; 22+ messages in thread
From: Avery Pennarun @ 2008-09-19 16:42 UTC (permalink / raw)
  To: Petr Baudis
  Cc: Junio C Hamano, Kirill Smelkov, Daniel Barkalow, Bert Wesarg,
	Git Mailing List

On Fri, Sep 19, 2008 at 12:33 PM, Petr Baudis <pasky@suse.cz> wrote:
> Yes, but the idea here is to give both the projects and the users
> sensible default to work on, in case of users even one that might change
> system to system based on tools behavior. It is that VAST MAJORITY of
> projects won't care about object or (most kinds of) hidden files, so to
> me it makes sense to make people opt out instead of opt in.

The problem here is that the cost of a false positive (ie. too much
ignored) is much greater than the cost of a false negative (ie. too
little ignored).

In the very worst case, if too few files are ignored and a developer
is paying no attention at all, then a *.o or *~ file gets committed;
you can just delete it again.  But if too *many* files are ignored,
you can work on your private branch for weeks at a time, thinking
you're keeping regular snapshots, and actually all your commits are
useless because an important file was never versioned.

I never, ever want to end up in the latter situation, so even though I
start virtually every git project by putting "*.[oa]" and "*~" in my
.gitignore, I'm glad it's *me* doing that and not somebody else.

Have fun,

Avery

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2008-09-19 16:44 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-18 16:29 A couple of TopGit tweaks Kirill Smelkov
2008-09-18 16:29 ` [TopGit PATCH] .gitignore += vim swap files Kirill Smelkov
2008-09-18 17:24   ` martin f krafft
2008-09-18 17:30     ` Kirill Smelkov
2008-09-18 17:38   ` Bert Wesarg
2008-09-18 17:43     ` Kirill Smelkov
2008-09-18 17:56       ` Bert Wesarg
2008-09-18 17:50         ` Kirill Smelkov
2008-09-18 17:54     ` martin f krafft
2008-09-18 19:30     ` Daniel Barkalow
2008-09-19  5:06       ` Kirill Smelkov
2008-09-19  7:10         ` Bert Wesarg
2008-09-19  7:28           ` Kirill Smelkov
2008-09-19  7:51             ` Andreas Ericsson
2008-09-19  7:52               ` Kirill Smelkov
2008-09-19 10:50             ` Bert Wesarg
2008-09-19 14:22         ` Default exclude rules for Git Petr Baudis
2008-09-19 15:46           ` Junio C Hamano
2008-09-19 16:33             ` Petr Baudis
2008-09-19 16:42               ` Avery Pennarun
2008-09-18 16:29 ` [TopGit PATCH] tg help: <something>: improve readability Kirill Smelkov
2008-09-18 16:29 ` [TopGit PATCH] tg import: fix + make more robust Kirill Smelkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox