git@vger.kernel.org mailing list mirror (one of many)
 help / Atom feed
* Add option to git to ignore binary files unless force added
@ 2018-05-17  0:45 Anmol Sethi
  2018-05-17  3:18 ` Jacob Keller
  0 siblings, 1 reply; 8+ messages in thread
From: Anmol Sethi @ 2018-05-17  0:45 UTC (permalink / raw)
  To: git

I think it’d be great to have an option to have git ignore binary files. My repositories are always source only, committing a binary is always a mistake. At the moment, I have to configure the .gitignore to ignore every binary file and that gets tedious. Having git ignore all binary files would be great.

This could be achieved via an option in .gitconfig or maybe a special line in .gitignore.

I just want to never accidentally commit a binary again.

-- 
Best,
Anmol


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

* Re: Add option to git to ignore binary files unless force added
  2018-05-17  0:45 Add option to git to ignore binary files unless force added Anmol Sethi
@ 2018-05-17  3:18 ` Jacob Keller
  2018-05-17 12:37   ` Randall S. Becker
  2018-05-18 11:31   ` Anmol Sethi
  0 siblings, 2 replies; 8+ messages in thread
From: Jacob Keller @ 2018-05-17  3:18 UTC (permalink / raw)
  To: Anmol Sethi; +Cc: Git mailing list

On Wed, May 16, 2018 at 5:45 PM, Anmol Sethi <me@anmol.io> wrote:
> I think it’d be great to have an option to have git ignore binary files. My repositories are always source only, committing a binary is always a mistake. At the moment, I have to configure the .gitignore to ignore every binary file and that gets tedious. Having git ignore all binary files would be great.
>
> This could be achieved via an option in .gitconfig or maybe a special line in .gitignore.
>
> I just want to never accidentally commit a binary again.
>
> --
> Best,
> Anmol
>

I believe you can do a couple things. There should be a hook which you
can modify to validate that there are no binary files on
pre-commit[1], or pre-push[2] to verify that you never push commits
with binaries in them.

You could also implement the update hook on the server if you control
it, to allow it to block pushes which contain binary files.

Thanks,
Jake

[1]https://git-scm.com/docs/githooks#_pre_commit
[2]https://git-scm.com/docs/githooks#_pre_push
[3]https://git-scm.com/docs/githooks#update

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

* RE: Add option to git to ignore binary files unless force added
  2018-05-17  3:18 ` Jacob Keller
@ 2018-05-17 12:37   ` Randall S. Becker
  2018-05-18 11:31     ` Anmol Sethi
  2018-05-18 11:31   ` Anmol Sethi
  1 sibling, 1 reply; 8+ messages in thread
From: Randall S. Becker @ 2018-05-17 12:37 UTC (permalink / raw)
  To: Jacob Keller, Anmol Sethi; +Cc: Git mailing list

On May 16, 2018 11:18 PM, Jacob Keller
> On Wed, May 16, 2018 at 5:45 PM, Anmol Sethi <me@anmol.io> wrote:
> > I think it’d be great to have an option to have git ignore binary files. My
> repositories are always source only, committing a binary is always a mistake.
> At the moment, I have to configure the .gitignore to ignore every binary file
> and that gets tedious. Having git ignore all binary files would be great.
> >
> > This could be achieved via an option in .gitconfig or maybe a special line in
> .gitignore.
> >
> > I just want to never accidentally commit a binary again.
> 
> I believe you can do a couple things. There should be a hook which you can
> modify to validate that there are no binary files on pre-commit[1], or pre-
> push[2] to verify that you never push commits with binaries in them.
> 
> You could also implement the update hook on the server if you control it, to
> allow it to block pushes which contain binary files.

What about configuring ${HOME}/.config/git/ignore instead (described at https://git-scm.com/docs/gitignore). Inside, put:

*.o
*.exe
*.bin
*.dat
Etc....

Cheers,
Randall



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

* Re: Add option to git to ignore binary files unless force added
  2018-05-17 12:37   ` Randall S. Becker
@ 2018-05-18 11:31     ` Anmol Sethi
  2018-05-18 15:37       ` Randall S. Becker
  0 siblings, 1 reply; 8+ messages in thread
From: Anmol Sethi @ 2018-05-18 11:31 UTC (permalink / raw)
  To: Randall S. Becker; +Cc: Jacob Keller, Git mailing list

That works but most binaries do not have a file extension. Its just not standard on linux.

> On May 17, 2018, at 8:37 AM, Randall S. Becker <rsbecker@nexbridge.com> wrote:
> 
> On May 16, 2018 11:18 PM, Jacob Keller
>> On Wed, May 16, 2018 at 5:45 PM, Anmol Sethi <me@anmol.io> wrote:
>>> I think it’d be great to have an option to have git ignore binary files. My
>> repositories are always source only, committing a binary is always a mistake.
>> At the moment, I have to configure the .gitignore to ignore every binary file
>> and that gets tedious. Having git ignore all binary files would be great.
>>> 
>>> This could be achieved via an option in .gitconfig or maybe a special line in
>> .gitignore.
>>> 
>>> I just want to never accidentally commit a binary again.
>> 
>> I believe you can do a couple things. There should be a hook which you can
>> modify to validate that there are no binary files on pre-commit[1], or pre-
>> push[2] to verify that you never push commits with binaries in them.
>> 
>> You could also implement the update hook on the server if you control it, to
>> allow it to block pushes which contain binary files.
> 
> What about configuring ${HOME}/.config/git/ignore instead (described at https://git-scm.com/docs/gitignore). Inside, put:
> 
> *.o
> *.exe
> *.bin
> *.dat
> Etc....
> 
> Cheers,
> Randall
> 
> 

-- 
Best,
Anmol


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

* Re: Add option to git to ignore binary files unless force added
  2018-05-17  3:18 ` Jacob Keller
  2018-05-17 12:37   ` Randall S. Becker
@ 2018-05-18 11:31   ` Anmol Sethi
  2018-05-18 18:09     ` Jacob Keller
  1 sibling, 1 reply; 8+ messages in thread
From: Anmol Sethi @ 2018-05-18 11:31 UTC (permalink / raw)
  To: Jacob Keller; +Cc: Git mailing list

This definitely works but it would be more clean to just have git ignore the binary files from the get go.

> On May 16, 2018, at 11:18 PM, Jacob Keller <jacob.keller@gmail.com> wrote:
> 
> On Wed, May 16, 2018 at 5:45 PM, Anmol Sethi <me@anmol.io> wrote:
>> I think it’d be great to have an option to have git ignore binary files. My repositories are always source only, committing a binary is always a mistake. At the moment, I have to configure the .gitignore to ignore every binary file and that gets tedious. Having git ignore all binary files would be great.
>> 
>> This could be achieved via an option in .gitconfig or maybe a special line in .gitignore.
>> 
>> I just want to never accidentally commit a binary again.
>> 
>> --
>> Best,
>> Anmol
>> 
> 
> I believe you can do a couple things. There should be a hook which you
> can modify to validate that there are no binary files on
> pre-commit[1], or pre-push[2] to verify that you never push commits
> with binaries in them.
> 
> You could also implement the update hook on the server if you control
> it, to allow it to block pushes which contain binary files.
> 
> Thanks,
> Jake
> 
> [1]https://git-scm.com/docs/githooks#_pre_commit
> [2]https://git-scm.com/docs/githooks#_pre_push
> [3]https://git-scm.com/docs/githooks#update

-- 
Best,
Anmol


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

* RE: Add option to git to ignore binary files unless force added
  2018-05-18 11:31     ` Anmol Sethi
@ 2018-05-18 15:37       ` Randall S. Becker
  0 siblings, 0 replies; 8+ messages in thread
From: Randall S. Becker @ 2018-05-18 15:37 UTC (permalink / raw)
  To: Anmol Sethi; +Cc: Jacob Keller, Git mailing list

On May 18, 2018 7:31 AM, Anmol Sethi <me@anmol.io>
> That works but most binaries do not have a file extension. Its just not
> standard on linux.
> 
> > On May 17, 2018, at 8:37 AM, Randall S. Becker <rsbecker@nexbridge.com>
> wrote:
> >
> > On May 16, 2018 11:18 PM, Jacob Keller
> >> On Wed, May 16, 2018 at 5:45 PM, Anmol Sethi <me@anmol.io> wrote:
> >>> I think it’d be great to have an option to have git ignore binary
> >>> files. My
> >> repositories are always source only, committing a binary is always a
> mistake.
> >> At the moment, I have to configure the .gitignore to ignore every
> >> binary file and that gets tedious. Having git ignore all binary files would be
> great.
> >>>
> >>> This could be achieved via an option in .gitconfig or maybe a
> >>> special line in
> >> .gitignore.
> >>>
> >>> I just want to never accidentally commit a binary again.
> >>
> >> I believe you can do a couple things. There should be a hook which
> >> you can modify to validate that there are no binary files on
> >> pre-commit[1], or pre- push[2] to verify that you never push commits
> with binaries in them.
> >>
> >> You could also implement the update hook on the server if you control
> >> it, to allow it to block pushes which contain binary files.
> >
> > What about configuring ${HOME}/.config/git/ignore instead (described at
> https://git-scm.com/docs/gitignore). Inside, put:
> >
> > *.o
> > *.exe
> > *.bin
> > *.dat
> > Etc....

I have a similar problem on my platform, with a different solution. My builds involve GCC binaries, NonStop L-series binaries (x86), and a NonStop J-series binaries (itanium). To keep me sane, I have all build targets going to separate directories, like Build/GCC, Build/Lbin, Build/Jbin away from the sources. This allows me to ignore Build/ regardless of extension and also to build different targets without link collisions. This is similar to how Java works (a.k.a. bin/). Much more workable, IMHO, than trying to manage individual binaries name by name or even by extension. I also have a mix of jpg and UTF-16 HTML that would end up in false-positives on a pure binary match and I do want to manage those.

What helps me is that I do most of my work in ECLIPSE, so derived resources (objects, generated sources) get auto-ignored by EGit, if you can make your compiler arrange that - but that's an ECLIPSE thing not a file system thing.

Cheers,
Randall

-- Brief whoami:
 NonStop developer since approximately 211288444200000000
 UNIX developer since approximately 421664400
-- In my real life, I talk too much.




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

* Re: Add option to git to ignore binary files unless force added
  2018-05-18 11:31   ` Anmol Sethi
@ 2018-05-18 18:09     ` Jacob Keller
  2018-05-18 18:11       ` Anmol Sethi
  0 siblings, 1 reply; 8+ messages in thread
From: Jacob Keller @ 2018-05-18 18:09 UTC (permalink / raw)
  To: Anmol Sethi; +Cc: Git mailing list

On Fri, May 18, 2018 at 4:31 AM, Anmol Sethi <me@anmol.io> wrote:
> This definitely works but it would be more clean to just have git ignore the binary files from the get go.
>

Sure it'd be more convenient for you. But there are loads of possible
combinations, and the idea of what constitutes unwanted files is
hugely variable to each user. We don't really want to end up
supporting a million different ways to do this, and the hooks
interface provides a reasonable method for rejecting commits with
unwanted contents.


Thanks,
Jake

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

* Re: Add option to git to ignore binary files unless force added
  2018-05-18 18:09     ` Jacob Keller
@ 2018-05-18 18:11       ` Anmol Sethi
  0 siblings, 0 replies; 8+ messages in thread
From: Anmol Sethi @ 2018-05-18 18:11 UTC (permalink / raw)
  To: Jacob Keller; +Cc: Git mailing list

How about a hook to ignore certain files? Then you could ignore based on the contents of the fail instead of just the extension. It’d be very flexible.

> On May 18, 2018, at 2:09 PM, Jacob Keller <jacob.keller@gmail.com> wrote:
> 
> On Fri, May 18, 2018 at 4:31 AM, Anmol Sethi <me@anmol.io> wrote:
>> This definitely works but it would be more clean to just have git ignore the binary files from the get go.
>> 
> 
> Sure it'd be more convenient for you. But there are loads of possible
> combinations, and the idea of what constitutes unwanted files is
> hugely variable to each user. We don't really want to end up
> supporting a million different ways to do this, and the hooks
> interface provides a reasonable method for rejecting commits with
> unwanted contents.
> 
> 
> Thanks,
> Jake

-- 
Best,
Anmol


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

end of thread, back to index

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-17  0:45 Add option to git to ignore binary files unless force added Anmol Sethi
2018-05-17  3:18 ` Jacob Keller
2018-05-17 12:37   ` Randall S. Becker
2018-05-18 11:31     ` Anmol Sethi
2018-05-18 15:37       ` Randall S. Becker
2018-05-18 11:31   ` Anmol Sethi
2018-05-18 18:09     ` Jacob Keller
2018-05-18 18:11       ` Anmol Sethi

git@vger.kernel.org mailing list mirror (one of many)

Archives are clonable:
	git clone --mirror https://public-inbox.org/git
	git clone --mirror http://ou63pmih66umazou.onion/git
	git clone --mirror http://czquwvybam4bgbro.onion/git
	git clone --mirror http://hjrcffqmbrq6wope.onion/git

Newsgroups are available over NNTP:
	nntp://news.public-inbox.org/inbox.comp.version-control.git
	nntp://ou63pmih66umazou.onion/inbox.comp.version-control.git
	nntp://czquwvybam4bgbro.onion/inbox.comp.version-control.git
	nntp://hjrcffqmbrq6wope.onion/inbox.comp.version-control.git
	nntp://news.gmane.org/gmane.comp.version-control.git

 note: .onion URLs require Tor: https://www.torproject.org/
       or Tor2web: https://www.tor2web.org/

AGPL code for this site: git clone https://public-inbox.org/ public-inbox