* diff settings @ 2009-01-24 17:38 Keith Cascio 2009-01-24 19:22 ` Jeff King 2009-01-24 19:33 ` Teemu Likonen 0 siblings, 2 replies; 13+ messages in thread From: Keith Cascio @ 2009-01-24 17:38 UTC (permalink / raw) To: git How do I configure my local git so that diff always obeys a particular option, e.g. "-w", without needing to type it on the command line each time? Thanks, Keith ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: diff settings 2009-01-24 17:38 diff settings Keith Cascio @ 2009-01-24 19:22 ` Jeff King 2009-01-24 19:33 ` Teemu Likonen 1 sibling, 0 replies; 13+ messages in thread From: Jeff King @ 2009-01-24 19:22 UTC (permalink / raw) To: Keith Cascio; +Cc: git On Sat, Jan 24, 2009 at 09:38:18AM -0800, Keith Cascio wrote: > How do I configure my local git so that diff always obeys a particular > option, e.g. "-w", without needing to type it on the command line each > time? AFAIK, there is not a way to do it in the general case (though there are specific config options for things like rename support). When I refactored the gitattributes diff=$foo code a few months back, I tried to keep in mind the possibility of a "diff options" field. But I never actually implemented anything, as I don't personally ever use diff options in such a way. If you're interested, it would probably not be too hard to implement (see userdiff.[ch], and the external and textconv code in diff.c for a start). -Peff ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: diff settings 2009-01-24 17:38 diff settings Keith Cascio 2009-01-24 19:22 ` Jeff King @ 2009-01-24 19:33 ` Teemu Likonen 2009-01-24 20:01 ` Keith Cascio 1 sibling, 1 reply; 13+ messages in thread From: Teemu Likonen @ 2009-01-24 19:33 UTC (permalink / raw) To: Keith Cascio; +Cc: git Keith Cascio (2009-01-24 09:38 -0800) wrote: > How do I configure my local git so that diff always obeys a particular > option, e.g. "-w", without needing to type it on the command line each > time? It seems that the answer is "no", but aliases are a work-around: git config --global alias.dff "diff -w" Then "git dff" is your new "git diff -w". :-) ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: diff settings 2009-01-24 19:33 ` Teemu Likonen @ 2009-01-24 20:01 ` Keith Cascio 2009-01-25 21:02 ` Ted Pavlic 0 siblings, 1 reply; 13+ messages in thread From: Keith Cascio @ 2009-01-24 20:01 UTC (permalink / raw) To: Teemu Likonen; +Cc: git > It seems that the answer is "no", but aliases are a work-around: > > git config --global alias.dff "diff -w" > > Then "git dff" is your new "git diff -w". :-) That feature is gonna come in handy. It doesn't 100% fulfill my needs here but I like it! Thanks, I did not know about alias.* ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: diff settings 2009-01-24 20:01 ` Keith Cascio @ 2009-01-25 21:02 ` Ted Pavlic 2009-01-25 21:11 ` Keith Cascio 0 siblings, 1 reply; 13+ messages in thread From: Ted Pavlic @ 2009-01-25 21:02 UTC (permalink / raw) To: Keith Cascio; +Cc: Teemu Likonen, git >> git config --global alias.dff "diff -w" >> >> Then "git dff" is your new "git diff -w". :-) > > That feature is gonna come in handy. It doesn't 100% fulfill my needs here but > I like it! Thanks, I did not know about alias.* Mercurial has a "defaults.*" that does exactly what you want. That is, you can say [defaults] diff = -w and "hg diff" will automatically do "hg diff -w". Such a feature might be a nice addition to git. --Ted -- Ted Pavlic <ted@tedpavlic.com> Please visit my ALS association page: http://web.alsa.org/goto/tedpavlic My family appreciates your support in the fight to defeat ALS. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: diff settings 2009-01-25 21:02 ` Ted Pavlic @ 2009-01-25 21:11 ` Keith Cascio 2009-01-26 2:06 ` Ted Pavlic 0 siblings, 1 reply; 13+ messages in thread From: Keith Cascio @ 2009-01-25 21:11 UTC (permalink / raw) To: Ted Pavlic; +Cc: Teemu Likonen, git, Junio C Hamano, Johannes Schindelin On Sun, 25 Jan 2009, Ted Pavlic wrote: > Mercurial has a "defaults.*" that does exactly what you want. That is, you can > say > > [defaults] > diff = -w > > and "hg diff" will automatically do "hg diff -w". Such a feature might be a > nice addition to git. Thank you, that is very interesting. I just submitted a patch this morning that does exactly what you describe, but I called it "primer" instead of "defaults" because it seemed more explicit. Check it out. -- Keith ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: diff settings 2009-01-25 21:11 ` Keith Cascio @ 2009-01-26 2:06 ` Ted Pavlic 2009-01-29 16:26 ` Ted Pavlic [not found] ` <alpine.GSO.2.00.0901310750470.5437@kiwi.cs.ucla.edu> 0 siblings, 2 replies; 13+ messages in thread From: Ted Pavlic @ 2009-01-26 2:06 UTC (permalink / raw) To: Keith Cascio; +Cc: Teemu Likonen, git, Junio C Hamano, Johannes Schindelin >> Mercurial has a "defaults.*" that does exactly what you want. That is, you can >> [defaults] >> diff = -w >> and "hg diff" will automatically do "hg diff -w". Such a feature might be a >> nice addition to git. > Thank you, that is very interesting. I just submitted a patch this morning that > does exactly what you describe, but I called it "primer" instead of "defaults" > because it seemed more explicit. Check it out. I saw that. However, in Mercurial's case, the [defaults] section applies to all commands (including new ones introduced by extensions). That is, it looks like your patch adds a diff.primer, but Mercurial would add a primer.* that allows you to have a primer.diff, primer.commit, etc. For example, wouldn't it be nice to have something like... [defaults] diff = -w commit = -a etc.? Right now the only way you can do that is with aliases (e.g., I have an alias from "ci" to "commit -a"). This task is pretty easy in Mercurial because Mercurial porcelains are implemented as modules that are all executed through the central "hg" command. This isn't the case with git. (on a somewhat unrelated note, Mercurial does have a [diff] section that allows for, say, forcing the use of git diff and other things) --Ted -- Ted Pavlic <ted@tedpavlic.com> Please visit my ALS association page: http://web.alsa.org/goto/tedpavlic My family appreciates your support in the fight to defeat ALS. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: diff settings 2009-01-26 2:06 ` Ted Pavlic @ 2009-01-29 16:26 ` Ted Pavlic 2009-01-29 16:33 ` Johannes Schindelin [not found] ` <alpine.GSO.2.00.0901310750470.5437@kiwi.cs.ucla.edu> 1 sibling, 1 reply; 13+ messages in thread From: Ted Pavlic @ 2009-01-29 16:26 UTC (permalink / raw) To: Keith Cascio; +Cc: Teemu Likonen, git, Junio C Hamano, Johannes Schindelin > This task is pretty easy in Mercurial because Mercurial porcelains are > implemented as modules that are all executed through the central "hg" > command. This isn't the case with git. (on the other hand, having a "[defaults]" section that only applies when commands are called via "git" might be nice. That way you can use the "git-CMD" when you want to use CMD without the "[defaults]"... perhaps?) -- Ted Pavlic <ted@tedpavlic.com> Please visit my ALS association page: http://web.alsa.org/goto/tedpavlic My family appreciates your support in the fight to defeat ALS. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: diff settings 2009-01-29 16:26 ` Ted Pavlic @ 2009-01-29 16:33 ` Johannes Schindelin 2009-01-29 18:46 ` Keith Cascio 0 siblings, 1 reply; 13+ messages in thread From: Johannes Schindelin @ 2009-01-29 16:33 UTC (permalink / raw) To: Ted Pavlic; +Cc: Keith Cascio, Teemu Likonen, git, Junio C Hamano Hi, On Thu, 29 Jan 2009, Ted Pavlic wrote: > > This task is pretty easy in Mercurial because Mercurial porcelains are > > implemented as modules that are all executed through the central "hg" > > command. This isn't the case with git. > > (on the other hand, having a "[defaults]" section that only applies when > commands are called via "git" might be nice. That way you can use the > "git-CMD" when you want to use CMD without the "[defaults]"... perhaps?) Nope, the dash form is deprecated, and once y'all out there finally do not write it any more, we can start thinking about _not_ hardlinking the builtins to their dashed form anymore. Believe it or not, we already have a distinction between what is called from scripts vs from humans: plumbing vs porcelain. So you can set the defaults for porcelain as much as you want, but please leave plumbing alone. Ciao, Dscho ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: diff settings 2009-01-29 16:33 ` Johannes Schindelin @ 2009-01-29 18:46 ` Keith Cascio 2009-01-29 21:07 ` Nanako Shiraishi 0 siblings, 1 reply; 13+ messages in thread From: Keith Cascio @ 2009-01-29 18:46 UTC (permalink / raw) To: Johannes Schindelin; +Cc: Ted Pavlic, git, Junio C Hamano On Thu, 29 Jan 2009, Johannes Schindelin wrote: > we already have a distinction between what is called from scripts vs from > humans: plumbing vs porcelain. So you can set the defaults for porcelain as > much as you want, but please leave plumbing alone. May we consider "git diff" Porcelain and "git diff-{files,index,tree}" plumbing? ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: diff settings 2009-01-29 18:46 ` Keith Cascio @ 2009-01-29 21:07 ` Nanako Shiraishi 0 siblings, 0 replies; 13+ messages in thread From: Nanako Shiraishi @ 2009-01-29 21:07 UTC (permalink / raw) To: Keith Cascio; +Cc: Johannes Schindelin, Ted Pavlic, git, Junio C Hamano Quoting Keith Cascio <keith@CS.UCLA.EDU>: > On Thu, 29 Jan 2009, Johannes Schindelin wrote: > >> we already have a distinction between what is called from scripts vs from >> humans: plumbing vs porcelain. So you can set the defaults for porcelain as >> much as you want, but please leave plumbing alone. > > May we consider "git diff" Porcelain and "git diff-{files,index,tree}" plumbing? Sure we may. To see the list of commands with categories, you can consult http://www.kernel.org/pub/software/scm/git/docs/ Junio, I think you could have stated this a bit more clearly in your message http://thread.gmane.org/gmane.comp.version-control.git/107069/focus=107165 to avoid confusion, especially when you know you are talking to somebody new to git. -- Nanako Shiraishi http://ivory.ap.teacup.com/nanako3/ ^ permalink raw reply [flat|nested] 13+ messages in thread
[parent not found: <alpine.GSO.2.00.0901310750470.5437@kiwi.cs.ucla.edu>]
* Re: diff settings [not found] ` <alpine.GSO.2.00.0901310750470.5437@kiwi.cs.ucla.edu> @ 2009-01-31 19:47 ` Ted Pavlic 2009-01-31 23:10 ` Keith Cascio 0 siblings, 1 reply; 13+ messages in thread From: Ted Pavlic @ 2009-01-31 19:47 UTC (permalink / raw) To: Keith Cascio; +Cc: git, Junio C Hamano, Johannes Schindelin, Nanako Shiraishi > Thank you for alerting us to the Hg design. I can appreciate the elegance of > it, and I'm always in favor of the most general possible implementation. But > there is a subtle difference between diff.primer and primer.diff. As I already discussed, Mercurial has both "diff.primer" and "primer.diff" precisely because "diff" settings affects so many Hg commands. In particular, in my .hgrc, I have: [diff] git = 1 which causes all Mercurial commands that need to generate a diff to use gitdiff rather than truediff. However, if I *wanted* to apply a set of flags to a particular command, I could (using the equivalent "git" commands)... [defaults] pull = --rebase commit = -a format-patch = -M So I see a purpose for both *.defaults and defaults.*. Of course, aliases are also nice (IIRC, Mercurial doesn't have "aliases", but I could be wrong). Mercurial users are very happy with having both available. I imagine git people would be too. --Ted -- Ted Pavlic <ted@tedpavlic.com> Please visit my ALS association page: http://web.alsa.org/goto/tedpavlic My family appreciates your support in the fight to defeat ALS. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: diff settings 2009-01-31 19:47 ` Ted Pavlic @ 2009-01-31 23:10 ` Keith Cascio 0 siblings, 0 replies; 13+ messages in thread From: Keith Cascio @ 2009-01-31 23:10 UTC (permalink / raw) To: Ted Pavlic; +Cc: git On Sat, 31 Jan 2009, Ted Pavlic wrote: > As I already discussed, Mercurial has both "diff.primer" and "primer.diff" > precisely because "diff" settings affects so many Hg commands. Yes I remember you did mention that. > In particular, in my .hgrc, I have: > [diff] > git = 1 > which causes all Mercurial commands that need to generate a diff to use > gitdiff rather than truediff. However, if I *wanted* to apply a set of flags > to a particular command, I could (using the equivalent "git" commands)... > [defaults] > pull = --rebase > commit = -a > format-patch = -M > So I see a purpose for both *.defaults and defaults.*. Of course, aliases are > also nice (IIRC, Mercurial doesn't have "aliases", but I could be wrong). > Mercurial users are very happy with having both available. I imagine git > people would be too. I like it! I'm all for it. Perfect opportunity for future work. In fact, I think I already glanced at the part of the code that's the right place to make that stuff happen. -- Keith ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2009-01-31 23:11 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-01-24 17:38 diff settings Keith Cascio 2009-01-24 19:22 ` Jeff King 2009-01-24 19:33 ` Teemu Likonen 2009-01-24 20:01 ` Keith Cascio 2009-01-25 21:02 ` Ted Pavlic 2009-01-25 21:11 ` Keith Cascio 2009-01-26 2:06 ` Ted Pavlic 2009-01-29 16:26 ` Ted Pavlic 2009-01-29 16:33 ` Johannes Schindelin 2009-01-29 18:46 ` Keith Cascio 2009-01-29 21:07 ` Nanako Shiraishi [not found] ` <alpine.GSO.2.00.0901310750470.5437@kiwi.cs.ucla.edu> 2009-01-31 19:47 ` Ted Pavlic 2009-01-31 23:10 ` Keith Cascio
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).