Skip to content

Conversation

av-gal
Copy link
Contributor

@av-gal av-gal commented Aug 12, 2024

No description provided.

@av-gal av-gal force-pushed the git-svn-doc-globalignores branch from 88a502c to 9850e80 Compare August 12, 2024 21:59
@av-gal
Copy link
Contributor Author

av-gal commented Aug 12, 2024

/submit

Copy link

Submitted as pull.1766.git.git.1723500383989.gitgitgadget@gmail.com

To fetch this version into FETCH_HEAD:

git fetch https://github.com/gitgitgadget/git/ pr-git-1766/av-gal/git-svn-doc-globalignores-v1

To fetch this version to local tag pr-git-1766/av-gal/git-svn-doc-globalignores-v1:

git fetch --no-tags https://github.com/gitgitgadget/git/ tag pr-git-1766/av-gal/git-svn-doc-globalignores-v1

Copy link

On the Git mailing list, Junio C Hamano wrote (reply to this):

"Alex Galvin via GitGitGadget" <gitgitgadget@gmail.com> writes:

> From: Alex Galvin <alex.v.galvin@gmail.com>
>
> Git-SVN was previously taught to use the svn:globalignores attribute
> as well as svn:ignore when creating or showing .gitignore files from
> a Subversion repository. However, the documentation and help message
> still only mentioned svn:ignore. This commit updates Git-SVN's
> documentation and help command to mention the newly supported attribute.

Thanks for tying these loose ends.  Very much appreciated.

> @@ -219,7 +219,7 @@ my %cmd = (
>  	                "Set an SVN repository to a git tree-ish",
>  			{ 'stdin' => \$_stdin, %cmt_opts, %fc_opts, } ],
>  	'create-ignore' => [ \&cmd_create_ignore,
> -			     'Create a .gitignore per svn:ignore',
> +			     'Create a .gitignore per directory with svn:ignore and svn:globalignores',

I do not know how likely it is that Subversion gains even more
sources of exclusion data in the future, but it makes me wonder if a
phrase like "Create a .gitignore file from ignore properties of svn"
so that we do not have to muck with the message.  Presumably those
who do use this feature know which properties Subversion uses to
record the ignored paths.  On the other hand, if it is not expected
to happen very soon, I think the text in this patch is good enough,
and we can revisit the issue of help text getting overly long when
we do need to add the third one.

The same comment applies to the runtime option help for the other
one.  I think listing the set of ignore properties we are aware of,
iow what you have in this patch, is perfectly appropriate for the
documentation.

Thanks.

Copy link

On the Git mailing list, Alex Galvin wrote (reply to this):

On 2024-08-13 1:36 p.m., Junio C Hamano wrote:
> I do not know how likely it is that Subversion gains even more
> sources of exclusion data in the future, but it makes me wonder if a
> phrase like "Create a .gitignore file from ignore properties of svn"
> so that we do not have to muck with the message.

I don't think that Subversion will add another attribute for ignored files anytime soon. The project has not had a minor release since 2020; the svn:global-ignores actually dates back to Subversion 1.8 in 2013.

With that being said, I think your proposed message is still better. I spent entirely too long debating if it was more appropriate to use "and" or "or" in my version of the help text.

@av-gal av-gal force-pushed the git-svn-doc-globalignores branch from 9850e80 to d0b5df1 Compare August 13, 2024 19:51
@av-gal av-gal changed the title git-svn: mention svn:globalignores in help+docs git-svn: mention svn:global-ignores in help+docs Aug 13, 2024
@av-gal
Copy link
Contributor Author

av-gal commented Aug 13, 2024

/submit

Copy link

Submitted as pull.1766.v2.git.git.1723578946962.gitgitgadget@gmail.com

To fetch this version into FETCH_HEAD:

git fetch https://github.com/gitgitgadget/git/ pr-git-1766/av-gal/git-svn-doc-globalignores-v2

To fetch this version to local tag pr-git-1766/av-gal/git-svn-doc-globalignores-v2:

git fetch --no-tags https://github.com/gitgitgadget/git/ tag pr-git-1766/av-gal/git-svn-doc-globalignores-v2

@dscho
Copy link
Member

dscho commented Aug 13, 2024

@av-gal please avoid closing a PR only to open another, almost identical one (like this one). Please prefer to force-push and continue with the same PR.

Copy link

On the Git mailing list, Junio C Hamano wrote (reply to this):

"Alex Galvin via GitGitGadget" <gitgitgadget@gmail.com> writes:

> From: Alex Galvin <alex.v.galvin@gmail.com>
>
> Git-SVN was previously taught to use the svn:global-ignores attribute

I think the noun they use is not "attribute" but "property".

> as well as svn:ignore when creating or showing .gitignore files from a
> Subversion repository. However, the documentation and help message
> still only mentioned svn:ignore. This commit updates Git-SVN's

"This commit updates" -> "Update".

> diff --git a/git-svn.perl b/git-svn.perl
> index a2a46608c9b..d8dc485e50d 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -219,11 +219,11 @@ my %cmd = (
>  	                "Set an SVN repository to a git tree-ish",
>  			{ 'stdin' => \$_stdin, %cmt_opts, %fc_opts, } ],
>  	'create-ignore' => [ \&cmd_create_ignore,
> -			     'Create a .gitignore per svn:ignore',
> +			     "Create a .gitignore per directory with an SVN ignore property",

Hmph.  Is it intentional that this "create" side uses a single
property while ...

>  			     { 'revision|r=i' => \$_revision
>  			     } ],
>  	'mkdirs' => [ \&cmd_mkdirs ,
> -	              "recreate empty directories after a checkout",
> +	              "Recreate empty directories after a checkout",

Given that all other messages begin with capitalized verb, this is a
good change for consistency, but it was not advertised in the
proposed log message (just saying "While at it, capitalize the help
message for 'mkdirs' command. for consistency" would be sufficient).

>  	              { 'revision|r=i' => \$_revision } ],
>          'propget' => [ \&cmd_propget,
>  		       'Print the value of a property on a file or directory',
> @@ -234,7 +234,7 @@ my %cmd = (
>          'proplist' => [ \&cmd_proplist,
>  		       'List all properties of a file or directory',
>  		       { 'revision|r=i' => \$_revision } ],
> -	'show-ignore' => [ \&cmd_show_ignore, "Show svn:ignore listings",
> +	'show-ignore' => [ \&cmd_show_ignore, "Show .gitignore patterns from SVN ignore properties",

... the other "show" side talks about "ignore properties" (plural),
implying that both svn:ignore and svn:global-ignores may get
involved?

>  			{ 'revision|r=i' => \$_revision
>  			} ],
>  	'show-externals' => [ \&cmd_show_externals, "Show svn:externals listings",
>
> base-commit: cabe67c0d1819fd1e33079e92615c6c7a3dc560d

Thanks.

Copy link

On the Git mailing list, Alex Galvin wrote (reply to this):

On 2024-08-13 6:33 p.m., Junio C Hamano wrote:
>> diff --git a/git-svn.perl b/git-svn.perl
>> index a2a46608c9b..d8dc485e50d 100755
>> --- a/git-svn.perl
>> +++ b/git-svn.perl
>> @@ -219,11 +219,11 @@ my %cmd = (
>>   	                "Set an SVN repository to a git tree-ish",
>>   			{ 'stdin' => \$_stdin, %cmt_opts, %fc_opts, } ],
>>   	'create-ignore' => [ \&cmd_create_ignore,
>> -			     'Create a .gitignore persvn:ignore',
>> +			     "Create a .gitignore per directory with an SVN ignore property",
> Hmph.  Is it intentional that this "create" side uses a single
> property while ...
> ... the other "show" side talks about "ignore properties" (plural),
> implying that both svn:ignore and svn:global-ignores may get
> involved?

I was trying to be precise that the create command makes one .gitignore
file in each directory it visits, regardless if that directory only has
one of the attributes or both. Would using "any SVN ignore property"
instead of "a SVN ignore property" make this clear?

Thanks,
Alex

Copy link

On the Git mailing list, Junio C Hamano wrote (reply to this):

Alex Galvin <agalvin@comqi.com> writes:

> On 2024-08-13 6:33 p.m., Junio C Hamano wrote:
>>> diff --git a/git-svn.perl b/git-svn.perl
>>> index a2a46608c9b..d8dc485e50d 100755
>>> --- a/git-svn.perl
>>> +++ b/git-svn.perl
>>> @@ -219,11 +219,11 @@ my %cmd = (
>>>   	                "Set an SVN repository to a git tree-ish",
>>>   			{ 'stdin' => \$_stdin, %cmt_opts, %fc_opts, } ],
>>>   	'create-ignore' => [ \&cmd_create_ignore,
>>> -			     'Create a .gitignore persvn:ignore',
>>> +			     "Create a .gitignore per directory with an SVN ignore property",
>> Hmph.  Is it intentional that this "create" side uses a single
>> property while ...
>> ... the other "show" side talks about "ignore properties" (plural),
>> implying that both svn:ignore and svn:global-ignores may get
>> involved?
>
> I was trying to be precise that the create command makes one .gitignore
> file in each directory it visits, regardless if that directory only has
> one of the attributes or both. Would using "any SVN ignore property"
> instead of "a SVN ignore property" make this clear?

You are creating a .gitignore file per each directory that has some
"ignore" properties on the subversion side, so I do not have any
trouble with "_a_ .gitignore" being singular in the description.

And you anticipate that each such directory has one or more [*]
svn:ignore or svn:global-ignores properties attached to it, and that
was why my reading hiccuped after seeing "with _an_ SVN ignore
property".

    Side note: * if there is 0 such properties given to the
    directory, you obviously do not muck with .gitignore file in the
    directory.

So I am not sure how much difference "any/a" before "SVN ignore
property" makes.

Thanks.

Git-SVN was previously taught to use the svn:global-ignores property as
well as svn:ignore when creating or showing .gitignore files from a
Subversion repository. However, the documentation and help message still
only mentioned svn:ignore. Update Git-SVN's documentation and help
command to mention support for the new property. Also capitalize the
help message for the 'mkdirs' command, for consistency.

Signed-off-by: Alex Galvin <agalvin@comqi.com>
@av-gal av-gal force-pushed the git-svn-doc-globalignores branch from d0b5df1 to a6d9351 Compare August 14, 2024 19:50
@av-gal
Copy link
Contributor Author

av-gal commented Aug 14, 2024

/submit

Copy link

Submitted as pull.1766.v3.git.git.1723665790460.gitgitgadget@gmail.com

To fetch this version into FETCH_HEAD:

git fetch https://github.com/gitgitgadget/git/ pr-git-1766/av-gal/git-svn-doc-globalignores-v3

To fetch this version to local tag pr-git-1766/av-gal/git-svn-doc-globalignores-v3:

git fetch --no-tags https://github.com/gitgitgadget/git/ tag pr-git-1766/av-gal/git-svn-doc-globalignores-v3

Copy link

On the Git mailing list, Junio C Hamano wrote (reply to this):

"Alex Galvin via GitGitGadget" <gitgitgadget@gmail.com> writes:

> From: Alex Galvin <agalvin@comqi.com>
>
> Git-SVN was previously taught to use the svn:global-ignores property as
> well as svn:ignore when creating or showing .gitignore files from a
> Subversion repository. However, the documentation and help message still
> only mentioned svn:ignore. Update Git-SVN's documentation and help
> command to mention support for the new property. Also capitalize the
> help message for the 'mkdirs' command, for consistency.
>
> Signed-off-by: Alex Galvin <agalvin@comqi.com>
> ---
>     git-svn: mention svn:global-ignores in help+docs

Well written.  Also thanks for forcing the authorship with the
additional in-body From: header.  I totally missed it while reading
the last round.

Will queue.  Let's mark it for 'next' soonish.

> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1766%2Fav-gal%2Fgit-svn-doc-globalignores-v3
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1766/av-gal/git-svn-doc-globalignores-v3
> Pull-Request: https://github.com/git/git/pull/1766
>
> Range-diff vs v2:
>
>  1:  d0b5df150e9 ! 1:  a6d93512218 git-svn: mention `svn:global-ignores` in help+docs
>      @@
>        ## Metadata ##
>      -Author: Alex Galvin <alex.v.galvin@gmail.com>
>      +Author: Alex Galvin <agalvin@comqi.com>
>       
>        ## Commit message ##
>           git-svn: mention `svn:global-ignores` in help+docs
>       
>      -    Git-SVN was previously taught to use the svn:global-ignores attribute
>      -    as well as svn:ignore when creating or showing .gitignore files from a
>      -    Subversion repository. However, the documentation and help message
>      -    still only mentioned svn:ignore. This commit updates Git-SVN's
>      -    documentation and help command to mention support for the new attribute.
>      +    Git-SVN was previously taught to use the svn:global-ignores property as
>      +    well as svn:ignore when creating or showing .gitignore files from a
>      +    Subversion repository. However, the documentation and help message still
>      +    only mentioned svn:ignore. Update Git-SVN's documentation and help
>      +    command to mention support for the new property. Also capitalize the
>      +    help message for the 'mkdirs' command, for consistency.
>       
>           Signed-off-by: Alex Galvin <agalvin@comqi.com>
>       
>      @@ git-svn.perl: my %cmd = (
>        			{ 'stdin' => \$_stdin, %cmt_opts, %fc_opts, } ],
>        	'create-ignore' => [ \&cmd_create_ignore,
>       -			     'Create a .gitignore per svn:ignore',
>      -+			     "Create a .gitignore per directory with an SVN ignore property",
>      ++			     "Create a .gitignore per directory with SVN ignore properties",
>        			     { 'revision|r=i' => \$_revision
>        			     } ],
>        	'mkdirs' => [ \&cmd_mkdirs ,
>
>
>  Documentation/git-svn.txt | 14 +++++++-------
>  git-svn.perl              |  6 +++---
>  2 files changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
> index 43c68c2ec44..bcf7d84a87d 100644
> --- a/Documentation/git-svn.txt
> +++ b/Documentation/git-svn.txt
> @@ -431,14 +431,14 @@ Any other arguments are passed directly to 'git log'
>  	independently of 'git svn' functions.
>  
>  'create-ignore'::
> -	Recursively finds the svn:ignore property on directories and
> -	creates matching .gitignore files. The resulting files are staged to
> -	be committed, but are not committed. Use -r/--revision to refer to a
> -	specific revision.
> +	Recursively finds the svn:ignore and svn:global-ignores properties
> +	on directories and creates matching .gitignore files. The resulting
> +	files are staged to be committed, but are not committed. Use
> +	-r/--revision to refer to a specific revision.
>  
>  'show-ignore'::
> -	Recursively finds and lists the svn:ignore property on
> -	directories.  The output is suitable for appending to
> +	Recursively finds and lists the svn:ignore and svn:global-ignores
> +	properties on directories. The output is suitable for appending to
>  	the $GIT_DIR/info/exclude file.
>  
>  'mkdirs'::
> @@ -871,7 +871,7 @@ Tracking and contributing to the trunk of a Subversion-managed project
>  # Now commit your changes (that were committed previously using Git) to SVN,
>  # as well as automatically updating your working HEAD:
>  	git svn dcommit
> -# Append svn:ignore settings to the default Git exclude file:
> +# Append svn:ignore and svn:global-ignores settings to the default Git exclude file:
>  	git svn show-ignore >> .git/info/exclude
>  ------------------------------------------------------------------------
>  
> diff --git a/git-svn.perl b/git-svn.perl
> index a2a46608c9b..01e7a70de1c 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -219,11 +219,11 @@ my %cmd = (
>  	                "Set an SVN repository to a git tree-ish",
>  			{ 'stdin' => \$_stdin, %cmt_opts, %fc_opts, } ],
>  	'create-ignore' => [ \&cmd_create_ignore,
> -			     'Create a .gitignore per svn:ignore',
> +			     "Create a .gitignore per directory with SVN ignore properties",
>  			     { 'revision|r=i' => \$_revision
>  			     } ],
>  	'mkdirs' => [ \&cmd_mkdirs ,
> -	              "recreate empty directories after a checkout",
> +	              "Recreate empty directories after a checkout",
>  	              { 'revision|r=i' => \$_revision } ],
>          'propget' => [ \&cmd_propget,
>  		       'Print the value of a property on a file or directory',
> @@ -234,7 +234,7 @@ my %cmd = (
>          'proplist' => [ \&cmd_proplist,
>  		       'List all properties of a file or directory',
>  		       { 'revision|r=i' => \$_revision } ],
> -	'show-ignore' => [ \&cmd_show_ignore, "Show svn:ignore listings",
> +	'show-ignore' => [ \&cmd_show_ignore, "Show .gitignore patterns from SVN ignore properties",
>  			{ 'revision|r=i' => \$_revision
>  			} ],
>  	'show-externals' => [ \&cmd_show_externals, "Show svn:externals listings",
>
> base-commit: cabe67c0d1819fd1e33079e92615c6c7a3dc560d

Copy link

This branch is now known as ag/git-svn-global-ignores.

Copy link

This patch series was integrated into seen via 1dfacaa.

Copy link

This patch series was integrated into next via b8332fe.

Copy link

This patch series was integrated into seen via d2baa78.

Copy link

There was a status update in the "Cooking" section about the branch ag/git-svn-global-ignores on the Git mailing list:

"git svn" has been taught about svn:global-ignores property
recent versions of Subversion has.

Will merge to 'master'.
source: <pull.1747.v2.git.git.1721335657.gitgitgadget@gmail.com>
source: <pull.1766.v2.git.git.1723578946962.gitgitgadget@gmail.com>

Copy link

This patch series was integrated into seen via c0f130c.

Copy link

This patch series was integrated into seen via 2e6d668.

Copy link

This patch series was integrated into seen via d97956b.

Copy link

This patch series was integrated into master via d97956b.

Copy link

This patch series was integrated into next via d97956b.

Copy link

Closed via d97956b.

@gitgitgadget-git gitgitgadget-git bot closed this Aug 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants