{"thread":{"id":"11636","subject":"[RFC/PATCH] Remove repo-config","startedAt":"2008-01-16T03:19:14Z","lastAt":"2008-01-24T18:20:01Z","messageCount":21,"participants":["Dan McGee","Junio C Hamano","Peter Oberndorfer","Jakub Narebski","Karl Hasselström","Catalin Marinas"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"65468","messageId":"1200453554-14163-1-git-send-email-dpmcgee@gmail.com","threadId":"11636","inReplyTo":null,"subject":"[RFC/PATCH] Remove repo-config","fromName":"Dan McGee","fromEmail":"dpmcgee@gmail.com","sentAt":"2008-01-16T03:19:14Z","receivedAt":"2008-01-16T03:19:14Z","isPatch":true,"sender":{"key":"dpmcgee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/265817?v=4"},"body":"'git config' has been used in place of 'git repo-config' for some time in\nthe documentation and most of the tools, so remove traces of repo-config\nfrom the source.\n\nSigned-off-by: Dan McGee <dpmcgee@gmail.com>\n---\n\nMainly a request for comment, but I sent this patch becuase I noticed\nrepo-config is not even listed in command-list.txt. Before the 1.5.4 release,\nI would think it either needs to be listed there or removed entirely.\n\nLooking forward to 1.5.5, is there any reason to keep an old command like\nthis around? It is rarely used and needlessly complicates things, and the\nmanpage did nothing but send you to config anyway.\n\nAll tests pass on Linux 2.6.23.\n\n-Dan\n\n Documentation/git-repo-config.txt      |   18 ------------------\n Makefile                               |    4 ++--\n contrib/completion/git-completion.bash |    1 -\n contrib/examples/git-tag.sh            |    1 +\n git.c                                  |    1 -\n t/t0020-crlf.sh                        |   24 ++++++++++++------------\n t/t9200-git-cvsexportcommit.sh         |    2 +-\n templates/hooks--update                |    8 ++++----\n 8 files changed, 20 insertions(+), 39 deletions(-)\n delete mode 100644 Documentation/git-repo-config.txt\n\ndiff --git a/Documentation/git-repo-config.txt b/Documentation/git-repo-config.txt\ndeleted file mode 100644\nindex 2ca3994..0000000\n--- a/Documentation/git-repo-config.txt\n+++ /dev/null\n@@ -1,18 +0,0 @@\n-git-repo-config(1)\n-==================\n-\n-NAME\n-----\n-git-repo-config - Get and set repository or global options\n-\n-\n-SYNOPSIS\n---------\n-'git-repo-config' ...\n-\n-\n-DESCRIPTION\n------------\n-\n-This is a synonym for linkgit:git-config[1].  Please refer to the\n-documentation of that command.\ndiff --git a/Makefile b/Makefile\nindex 82e9cd6..603f4ac 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -262,7 +262,7 @@ EXTRA_PROGRAMS =\n \n BUILT_INS = \\\n \tgit-format-patch$X git-show$X git-whatchanged$X git-cherry$X \\\n-\tgit-get-tar-commit-id$X git-init$X git-repo-config$X \\\n+\tgit-get-tar-commit-id$X git-init$X \\\n \tgit-fsck-objects$X git-cherry-pick$X git-peek-remote$X git-status$X \\\n \t$(patsubst builtin-%.o,git-%$X,$(BUILTIN_OBJS))\n \n@@ -1145,7 +1145,7 @@ check-docs::\n \t\tcase \"$$v\" in \\\n \t\tgit-merge-octopus | git-merge-ours | git-merge-recursive | \\\n \t\tgit-merge-resolve | git-merge-stupid | git-merge-subtree | \\\n-\t\tgit-fsck-objects | git-init-db | git-repo-config | \\\n+\t\tgit-fsck-objects | git-init-db | \\\n \t\tgit-?*--?* ) continue ;; \\\n \t\tesac ; \\\n \t\ttest -f \"Documentation/$$v.txt\" || \\\ndiff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash\nindex 343364d..c63a642 100755\n--- a/contrib/completion/git-completion.bash\n+++ b/contrib/completion/git-completion.bash\n@@ -333,7 +333,6 @@ __git_commands ()\n \t\tread-tree)        : plumbing;;\n \t\treceive-pack)     : plumbing;;\n \t\treflog)           : plumbing;;\n-\t\trepo-config)      : plumbing;;\n \t\trerere)           : plumbing;;\n \t\trev-list)         : plumbing;;\n \t\trev-parse)        : plumbing;;\ndiff --git a/contrib/examples/git-tag.sh b/contrib/examples/git-tag.sh\nindex ae7c531..a3182df 100755\n--- a/contrib/examples/git-tag.sh\n+++ b/contrib/examples/git-tag.sh\n@@ -167,6 +167,7 @@ type=$(git cat-file -t $object) || exit 1\n tagger=$(git-var GIT_COMMITTER_IDENT) || exit 1\n \n test -n \"$username\" ||\n+\t#NOTE: 'git repo-config' has since been replaced by 'git config'\n \tusername=$(git repo-config user.signingkey) ||\n \tusername=$(expr \"z$tagger\" : 'z\\(.*>\\)')\n \ndiff --git a/git.c b/git.c\nindex 15fec89..061d365 100644\n--- a/git.c\n+++ b/git.c\n@@ -340,7 +340,6 @@ static void handle_internal_command(int argc, const char **argv)\n \t\t{ \"push\", cmd_push, RUN_SETUP },\n \t\t{ \"read-tree\", cmd_read_tree, RUN_SETUP },\n \t\t{ \"reflog\", cmd_reflog, RUN_SETUP },\n-\t\t{ \"repo-config\", cmd_config },\n \t\t{ \"rerere\", cmd_rerere, RUN_SETUP },\n \t\t{ \"reset\", cmd_reset, RUN_SETUP },\n \t\t{ \"rev-list\", cmd_rev_list, RUN_SETUP },\ndiff --git a/t/t0020-crlf.sh b/t/t0020-crlf.sh\nindex 89baebd..8b27aa8 100755\n--- a/t/t0020-crlf.sh\n+++ b/t/t0020-crlf.sh\n@@ -19,7 +19,7 @@ remove_cr () {\n \n test_expect_success setup '\n \n-\tgit repo-config core.autocrlf false &&\n+\tgit config core.autocrlf false &&\n \n \tfor w in Hello world how are you; do echo $w; done >one &&\n \tmkdir dir &&\n@@ -46,7 +46,7 @@ test_expect_success 'update with autocrlf=input' '\n \n \trm -f tmp one dir/two three &&\n \tgit read-tree --reset -u HEAD &&\n-\tgit repo-config core.autocrlf input &&\n+\tgit config core.autocrlf input &&\n \n \tfor f in one dir/two\n \tdo\n@@ -70,7 +70,7 @@ test_expect_success 'update with autocrlf=true' '\n \n \trm -f tmp one dir/two three &&\n \tgit read-tree --reset -u HEAD &&\n-\tgit repo-config core.autocrlf true &&\n+\tgit config core.autocrlf true &&\n \n \tfor f in one dir/two\n \tdo\n@@ -93,7 +93,7 @@ test_expect_success 'update with autocrlf=true' '\n test_expect_success 'checkout with autocrlf=true' '\n \n \trm -f tmp one dir/two three &&\n-\tgit repo-config core.autocrlf true &&\n+\tgit config core.autocrlf true &&\n \tgit read-tree --reset -u HEAD &&\n \n \tfor f in one dir/two\n@@ -117,7 +117,7 @@ test_expect_success 'checkout with autocrlf=true' '\n test_expect_success 'checkout with autocrlf=input' '\n \n \trm -f tmp one dir/two three &&\n-\tgit repo-config core.autocrlf input &&\n+\tgit config core.autocrlf input &&\n \tgit read-tree --reset -u HEAD &&\n \n \tfor f in one dir/two\n@@ -143,7 +143,7 @@ test_expect_success 'checkout with autocrlf=input' '\n test_expect_success 'apply patch (autocrlf=input)' '\n \n \trm -f tmp one dir/two three &&\n-\tgit repo-config core.autocrlf input &&\n+\tgit config core.autocrlf input &&\n \tgit read-tree --reset -u HEAD &&\n \n \tgit apply patch.file &&\n@@ -156,7 +156,7 @@ test_expect_success 'apply patch (autocrlf=input)' '\n test_expect_success 'apply patch --cached (autocrlf=input)' '\n \n \trm -f tmp one dir/two three &&\n-\tgit repo-config core.autocrlf input &&\n+\tgit config core.autocrlf input &&\n \tgit read-tree --reset -u HEAD &&\n \n \tgit apply --cached patch.file &&\n@@ -169,7 +169,7 @@ test_expect_success 'apply patch --cached (autocrlf=input)' '\n test_expect_success 'apply patch --index (autocrlf=input)' '\n \n \trm -f tmp one dir/two three &&\n-\tgit repo-config core.autocrlf input &&\n+\tgit config core.autocrlf input &&\n \tgit read-tree --reset -u HEAD &&\n \n \tgit apply --index patch.file &&\n@@ -183,7 +183,7 @@ test_expect_success 'apply patch --index (autocrlf=input)' '\n test_expect_success 'apply patch (autocrlf=true)' '\n \n \trm -f tmp one dir/two three &&\n-\tgit repo-config core.autocrlf true &&\n+\tgit config core.autocrlf true &&\n \tgit read-tree --reset -u HEAD &&\n \n \tgit apply patch.file &&\n@@ -196,7 +196,7 @@ test_expect_success 'apply patch (autocrlf=true)' '\n test_expect_success 'apply patch --cached (autocrlf=true)' '\n \n \trm -f tmp one dir/two three &&\n-\tgit repo-config core.autocrlf true &&\n+\tgit config core.autocrlf true &&\n \tgit read-tree --reset -u HEAD &&\n \n \tgit apply --cached patch.file &&\n@@ -209,7 +209,7 @@ test_expect_success 'apply patch --cached (autocrlf=true)' '\n test_expect_success 'apply patch --index (autocrlf=true)' '\n \n \trm -f tmp one dir/two three &&\n-\tgit repo-config core.autocrlf true &&\n+\tgit config core.autocrlf true &&\n \tgit read-tree --reset -u HEAD &&\n \n \tgit apply --index patch.file &&\n@@ -224,7 +224,7 @@ test_expect_success '.gitattributes says two is binary' '\n \n \trm -f tmp one dir/two three &&\n \techo \"two -crlf\" >.gitattributes &&\n-\tgit repo-config core.autocrlf true &&\n+\tgit config core.autocrlf true &&\n \tgit read-tree --reset -u HEAD &&\n \n \tif remove_cr dir/two >/dev/null\ndiff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh\nindex 910c584..a15222c 100755\n--- a/t/t9200-git-cvsexportcommit.sh\n+++ b/t/t9200-git-cvsexportcommit.sh\n@@ -225,7 +225,7 @@ test_expect_success \\\n       ! git-cvsexportcommit -c $id\n       )'\n \n-case \"$(git repo-config --bool core.filemode)\" in\n+case \"$(git config --bool core.filemode)\" in\n false)\n \t;;\n *)\ndiff --git a/templates/hooks--update b/templates/hooks--update\nindex bd93dd1..09a99ff 100644\n--- a/templates/hooks--update\n+++ b/templates/hooks--update\n@@ -37,9 +37,9 @@ if [ -z \"$refname\" -o -z \"$oldrev\" -o -z \"$newrev\" ]; then\n fi\n \n # --- Config\n-allowunannotated=$(git-repo-config --bool hooks.allowunannotated)\n-allowdeletebranch=$(git-repo-config --bool hooks.allowdeletebranch)\n-allowdeletetag=$(git-repo-config --bool hooks.allowdeletetag)\n+allowunannotated=$(git config --bool hooks.allowunannotated)\n+allowdeletebranch=$(git config --bool hooks.allowdeletebranch)\n+allowdeletetag=$(git config --bool hooks.allowdeletetag)\n \n # check for no description\n projectdesc=$(sed -e '1q' \"$GIT_DIR/description\")\n@@ -53,7 +53,7 @@ fi\n if [ \"$newrev\" = \"0000000000000000000000000000000000000000\" ]; then\n \tnewrev_type=delete\n else\n-\tnewrev_type=$(git-cat-file -t $newrev)\n+\tnewrev_type=$(git cat-file -t $newrev)\n fi\n \n case \"$refname\",\"$newrev_type\" in\n-- \n1.5.4.rc3\n"},{"id":"65483","messageId":"7vtzles8j8.fsf@gitster.siamese.dyndns.org","threadId":"11636","inReplyTo":"1200453554-14163-1-git-send-email-dpmcgee@gmail.com","subject":"Re: [RFC/PATCH] Remove repo-config","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-01-16T04:23:39Z","receivedAt":"2008-01-16T04:23:39Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"I do not think it is unreasonable to add repo-config to feature\nremoval schedule in 1.5.4 release notes.  Perhaps something like...\n\ndiff --git a/Documentation/RelNotes-1.5.4.txt b/Documentation/RelNotes-1.5.4.txt\nindex 7d2a973..97a9bd9 100644\n--- a/Documentation/RelNotes-1.5.4.txt\n+++ b/Documentation/RelNotes-1.5.4.txt\n@@ -46,6 +46,10 @@ Deprecation notices\n    and works for all transports; \"git peek-remote\" will be removed in\n    the future.\n \n+ * \"git repo-config\", which was an old name for \"git config\" command,\n+   has been supported without being advertised for a long time.  The\n+   next feature release will remove it.\n+\n  * From v1.6.0, the repack.usedeltabaseoffset config option will default\n    to true, which will give denser packfiles (i.e. more efficient storage).\n    The downside is that git older than version 1.4.4 will not be able\n"},{"id":"65489","messageId":"478D8AA8.3070008@gmail.com","threadId":"11636","inReplyTo":"7vtzles8j8.fsf@gitster.siamese.dyndns.org","subject":"Re: [RFC/PATCH] Remove repo-config","fromName":"Dan McGee","fromEmail":"dpmcgee@gmail.com","sentAt":"2008-01-16T04:40:08Z","receivedAt":"2008-01-16T04:40:08Z","isPatch":true,"sender":{"key":"dpmcgee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/265817?v=4"},"body":"On 01/15/2008 10:23 PM, Junio C Hamano wrote:\n> I do not think it is unreasonable to add repo-config to feature\n> removal schedule in 1.5.4 release notes.  Perhaps something like...\n> \n> + * \"git repo-config\", which was an old name for \"git config\" command,\n> +   has been supported without being advertised for a long time.  The\n> +   next feature release will remove it.\n> +\n\nSeems fine to me. Does it need to be put in command-list.txt for the time being too, or what all is that file used for? Sorry I am not familiar.\n\nSomething like:\n\ngit-repo-config                       ancillarymanipulators\tdeprecated\n"},{"id":"65560","messageId":"7vlk6psn5h.fsf@gitster.siamese.dyndns.org","threadId":"11636","inReplyTo":"478D8AA8.3070008@gmail.com","subject":"Re: [RFC/PATCH] Remove repo-config","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-01-16T17:20:10Z","receivedAt":"2008-01-16T17:20:10Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Dan McGee <dpmcgee@gmail.com> writes:\n\n> On 01/15/2008 10:23 PM, Junio C Hamano wrote:\n>> I do not think it is unreasonable to add repo-config to feature\n>> removal schedule in 1.5.4 release notes.  Perhaps something like...\n>> \n>> + * \"git repo-config\", which was an old name for \"git config\" command,\n>> +   has been supported without being advertised for a long time.  The\n>> +   next feature release will remove it.\n>> +\n>\n> Seems fine to me. Does it need to be put in command-list.txt for the time being too, or what all is that file used for? Sorry I am not familiar.\n>\n> Something like:\n>\n> git-repo-config                       ancillarymanipulators\tdeprecated\n\nTechnically, you are right, but somehow it feels backwards.\n\nWe stopped advertising the existence of the command in v1.5.0,\nand adding it to the list now would mean we need to add a new\ngit-repo-config manual page that says \"This is deprecated, use\ngit-config instead\".\n"},{"id":"65595","messageId":"7v7ii9plzs.fsf@gitster.siamese.dyndns.org","threadId":"11636","inReplyTo":"1200453554-14163-1-git-send-email-dpmcgee@gmail.com","subject":"Re: [RFC/PATCH] Remove repo-config","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-01-16T20:13:27Z","receivedAt":"2008-01-16T20:13:27Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Dan McGee <dpmcgee@gmail.com> writes:\n\n> 'git config' has been used in place of 'git repo-config' for some time in\n> the documentation and most of the tools, so remove traces of repo-config\n> from the source.\n>\n> Signed-off-by: Dan McGee <dpmcgee@gmail.com>\n\nI'd agree with the deprecation.  We stopped advertising it long\ntime ago (1.5.0 I think).\n\n> diff --git a/Documentation/git-repo-config.txt b/Documentation/git-repo-config.txt\n\nLet's defer the removal til post 1.5.4.\n\n> diff --git a/Makefile b/Makefile\n\nLikewise.\n\n> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash\n\nLikewise.\n\n> diff --git a/contrib/examples/git-tag.sh b/contrib/examples/git-tag.sh\n> index ae7c531..a3182df 100755\n> --- a/contrib/examples/git-tag.sh\n> +++ b/contrib/examples/git-tag.sh\n> @@ -167,6 +167,7 @@ type=$(git cat-file -t $object) || exit 1\n>  tagger=$(git-var GIT_COMMITTER_IDENT) || exit 1\n>  \n>  test -n \"$username\" ||\n> +\t#NOTE: 'git repo-config' has since been replaced by 'git config'\n>  \tusername=$(git repo-config user.signingkey) ||\n>  \tusername=$(expr \"z$tagger\" : 'z\\(.*>\\)')\n\nGood.\n\n> diff --git a/git.c b/git.c\n\nDeferred.\n\n> diff --git a/t/t0020-crlf.sh b/t/t0020-crlf.sh\n> diff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh\n\nDoing s/repo-config/config/ in test scripts is good.\n\n> diff --git a/templates/hooks--update b/templates/hooks--update\n> index bd93dd1..09a99ff 100644\n> --- a/templates/hooks--update\n> +++ b/templates/hooks--update\n> @@ -37,9 +37,9 @@ if [ -z \"$refname\" -o -z \"$oldrev\" -o -z \"$newrev\" ]; then\n>  fi\n>  \n>  # --- Config\n> -allowunannotated=$(git-repo-config --bool hooks.allowunannotated)\n> -allowdeletebranch=$(git-repo-config --bool hooks.allowdeletebranch)\n> -allowdeletetag=$(git-repo-config --bool hooks.allowdeletetag)\n> +allowunannotated=$(git config --bool hooks.allowunannotated)\n> +allowdeletebranch=$(git config --bool hooks.allowdeletebranch)\n> +allowdeletetag=$(git config --bool hooks.allowdeletetag)\n>  \n>  # check for no description\n>  projectdesc=$(sed -e '1q' \"$GIT_DIR/description\")\n\nGood.\n\n\n> @@ -53,7 +53,7 @@ fi\n>  if [ \"$newrev\" = \"0000000000000000000000000000000000000000\" ]; then\n>  \tnewrev_type=delete\n>  else\n> -\tnewrev_type=$(git-cat-file -t $newrev)\n> +\tnewrev_type=$(git cat-file -t $newrev)\n>  fi\n>  \n>  case \"$refname\",\"$newrev_type\" in\n\nGood but does not belong to the topic.\n"},{"id":"65599","messageId":"7vsl0xo6k3.fsf@gitster.siamese.dyndns.org","threadId":"11636","inReplyTo":"7vlk6psn5h.fsf@gitster.siamese.dyndns.org","subject":"Re: [RFC/PATCH] Remove repo-config","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-01-16T20:32:12Z","receivedAt":"2008-01-16T20:32:12Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Dan McGee <dpmcgee@gmail.com> writes:\n>\n>> On 01/15/2008 10:23 PM, Junio C Hamano wrote:\n>>> I do not think it is unreasonable to add repo-config to feature\n>>> removal schedule in 1.5.4 release notes.  Perhaps something like...\n>>> \n>>> + * \"git repo-config\", which was an old name for \"git config\" command,\n>>> +   has been supported without being advertised for a long time.  The\n>>> +   next feature release will remove it.\n>>> +\n>>\n>> Seems fine to me. Does it need to be put in command-list.txt for the time being too, or what all is that file used for? Sorry I am not familiar.\n>>\n>> Something like:\n>>\n>> git-repo-config                       ancillarymanipulators\tdeprecated\n>\n> Technically, you are right, but somehow it feels backwards.\n>\n> We stopped advertising the existence of the command in v1.5.0,\n> and adding it to the list now would mean we need to add a new\n> git-repo-config manual page that says \"This is deprecated, use\n> git-config instead\".\n\nThis comment was wrong.  We can keep the existing repo-config\ndocumentation that has deprecation notice, and add the above\nline to the list.\n\nSorry about the confusion.\n"},{"id":"65604","messageId":"200801162147.33448.kumbayo84@arcor.de","threadId":"11636","inReplyTo":"1200453554-14163-1-git-send-email-dpmcgee@gmail.com","subject":"Re: [RFC/PATCH] Remove repo-config","fromName":"Peter Oberndorfer","fromEmail":"kumbayo84@arcor.de","sentAt":"2008-01-16T20:47:33Z","receivedAt":"2008-01-16T20:47:33Z","isPatch":true,"sender":{"key":"kumbayo84@arcor.de","avatar":"https://avatars.githubusercontent.com/u/1041267?v=4"},"body":"On Mittwoch 16 Januar 2008, Dan McGee wrote:\n> 'git config' has been used in place of 'git repo-config' for some time in\n> the documentation and most of the tools, so remove traces of repo-config\n> from the source.\n> \n> Signed-off-by: Dan McGee <dpmcgee@gmail.com>\n> ---\n> \n> Mainly a request for comment, but I sent this patch becuase I noticed\n> repo-config is not even listed in command-list.txt. Before the 1.5.4 release,\n> I would think it either needs to be listed there or removed entirely.\n> \n> Looking forward to 1.5.5, is there any reason to keep an old command like\n> this around? It is rarely used and needlessly complicates things, and the\n> manpage did nothing but send you to config anyway.\n> \nI don't know if this should impact removing schedule, but stgit 0.14.1\n(and the current development version) uses \"git repo-config\" instead of \"git config\"\nin stgit/config.py and certain tests\n\nwill post a patch for this as a reply\n> All tests pass on Linux 2.6.23.\n> \n> -Dan\nGreetings Peter\nPS: i hope it is ok to add stgit people to CC\n"},{"id":"65605","messageId":"200801162158.26450.kumbayo84@arcor.de","threadId":"11636","inReplyTo":"200801162147.33448.kumbayo84@arcor.de","subject":"[STGIT PATCH] replace \"git repo-config\" usage by \"git config\"","fromName":"Peter Oberndorfer","fromEmail":"kumbayo84@arcor.de","sentAt":"2008-01-16T20:58:26Z","receivedAt":"2008-01-16T20:58:26Z","isPatch":true,"sender":{"key":"kumbayo84@arcor.de","avatar":"https://avatars.githubusercontent.com/u/1041267?v=4"},"body":"\"git repo-config\" will be removed soon\n\nSigned-off-by: Peter Oberndorfer <kumbayo84@arcor.de>\n---\nsince i am not good at creating log messages, feel free to change it :-)\nbuilt on top of kha experimental patch\npasses all testcases for me\n stgit/config.py               |   14 +++++++-------\n t/t1900-mail.sh               |    2 +-\n t/t2100-pull-policy-fetch.sh  |    4 ++--\n t/t2101-pull-policy-pull.sh   |    4 ++--\n t/t2102-pull-policy-rebase.sh |    4 ++--\n 5 files changed, 14 insertions(+), 14 deletions(-)\n\ndiff --git a/stgit/config.py b/stgit/config.py\nindex 1d71cd2..9bfdd52 100644\n--- a/stgit/config.py\n+++ b/stgit/config.py\n@@ -47,7 +47,7 @@ class GitConfig:\n         if self.__cache.has_key(name):\n             return self.__cache[name]\n         try:\n-            value = Run('git', 'repo-config', '--get', name).output_one_line()\n+            value = Run('git', 'config', '--get', name).output_one_line()\n         except RunException:\n             value = self.__defaults.get(name, None)\n         self.__cache[name] = value\n@@ -56,7 +56,7 @@ class GitConfig:\n     def getall(self, name):\n         if self.__cache.has_key(name):\n             return self.__cache[name]\n-        values = Run('git', 'repo-config', '--get-all', name\n+        values = Run('git', 'config', '--get-all', name\n                      ).returns([0, 1]).output_lines()\n         self.__cache[name] = values\n         return values\n@@ -71,23 +71,23 @@ class GitConfig:\n     def rename_section(self, from_name, to_name):\n         \"\"\"Rename a section in the config file. Silently do nothing if\n         the section doesn't exist.\"\"\"\n-        Run('git', 'repo-config', '--rename-section', from_name, to_name\n+        Run('git', 'config', '--rename-section', from_name, to_name\n             ).returns([0, 1]).run()\n         self.__cache.clear()\n \n     def remove_section(self, name):\n         \"\"\"Remove a section in the config file. Silently do nothing if\n         the section doesn't exist.\"\"\"\n-        Run('git', 'repo-config', '--remove-section', name\n+        Run('git', 'config', '--remove-section', name\n             ).returns([0, 1]).discard_stderr().discard_output()\n         self.__cache.clear()\n \n     def set(self, name, value):\n-        Run('git', 'repo-config', name, value).run()\n+        Run('git', 'config', name, value).run()\n         self.__cache[name] = value\n \n     def unset(self, name):\n-        Run('git', 'repo-config', '--unset', name)\n+        Run('git', 'config', '--unset', name)\n         self.__cache[name] = None\n \n     def sections_matching(self, regexp):\n@@ -96,7 +96,7 @@ class GitConfig:\n         group contents, for all variable names matching the regexp.\n         \"\"\"\n         result = []\n-        for line in Run('git', 'repo-config', '--get-regexp', '\"^%s$\"' % regexp\n+        for line in Run('git', 'config', '--get-regexp', '\"^%s$\"' % regexp\n                         ).returns([0, 1]).output_lines():\n             m = re.match('^%s ' % regexp, line)\n             if m:\ndiff --git a/t/t1900-mail.sh b/t/t1900-mail.sh\nindex e83b2d3..cfdc6f3 100755\n--- a/t/t1900-mail.sh\n+++ b/t/t1900-mail.sh\n@@ -6,7 +6,7 @@ test_description='Test the mail command'\n test_expect_success \\\n     'Initialize the StGIT repository' \\\n     '\n-    git repo-config stgit.sender \"A U Thor <author@example.com>\" &&\n+    git config stgit.sender \"A U Thor <author@example.com>\" &&\n     for i in 1 2 3 4 5; do\n       touch foo.txt &&\n       echo \"line $i\" >> foo.txt &&\ndiff --git a/t/t2100-pull-policy-fetch.sh b/t/t2100-pull-policy-fetch.sh\nindex 9e4bc31..670c7c6 100755\n--- a/t/t2100-pull-policy-fetch.sh\n+++ b/t/t2100-pull-policy-fetch.sh\n@@ -19,8 +19,8 @@ test_expect_success \\\n     (cd upstream && stg init) &&\n     stg clone upstream clone &&\n     (cd clone &&\n-     git repo-config branch.master.stgit.pull-policy fetch-rebase &&\n-     git repo-config --list &&\n+     git config branch.master.stgit.pull-policy fetch-rebase &&\n+     git config --list &&\n      stg new c1 -m c1 &&\n      echo a > file && git add file && stg refresh\n     )\ndiff --git a/t/t2101-pull-policy-pull.sh b/t/t2101-pull-policy-pull.sh\nindex b4521f0..ce4b5c8 100755\n--- a/t/t2101-pull-policy-pull.sh\n+++ b/t/t2101-pull-policy-pull.sh\n@@ -19,8 +19,8 @@ test_expect_success \\\n     (cd upstream && stg init) &&\n     stg clone upstream clone &&\n     (cd clone &&\n-     git repo-config branch.master.stgit.pull-policy pull &&\n-     git repo-config --list &&\n+     git config branch.master.stgit.pull-policy pull &&\n+     git config --list &&\n      stg new c1 -m c1 &&\n      echo a > file && git add file && stg refresh\n     )\ndiff --git a/t/t2102-pull-policy-rebase.sh b/t/t2102-pull-policy-rebase.sh\nindex 135b48c..5619bda 100755\n--- a/t/t2102-pull-policy-rebase.sh\n+++ b/t/t2102-pull-policy-rebase.sh\n@@ -13,8 +13,8 @@ test_expect_success \\\n     git branch -m master parent &&\n     stg init &&\n     stg branch --create stack &&\n-    git repo-config branch.stack.stgit.pull-policy rebase &&\n-    git repo-config --list &&\n+    git config branch.stack.stgit.pull-policy rebase &&\n+    git config --list &&\n     stg new c1 -m c1 &&\n     echo a > file && git add file && stg refresh\n     '\n-- \n1.5.4.rc3\n"},{"id":"65606","messageId":"m3y7aplbie.fsf@roke.D-201","threadId":"11636","inReplyTo":"200801162158.26450.kumbayo84@arcor.de","subject":"Re: [STGIT PATCH] replace \"git repo-config\" usage by \"git config\"","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2008-01-16T21:13:35Z","receivedAt":"2008-01-16T21:13:35Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Peter Oberndorfer <kumbayo84@arcor.de> writes:\n\n> \"git repo-config\" will be removed soon\n> \n> Signed-off-by: Peter Oberndorfer <kumbayo84@arcor.de>\n> ---\n> since i am not good at creating log messages, feel free to change it :-)\n> built on top of kha experimental patch\n> passes all testcases for me\n\n> @@ -47,7 +47,7 @@ class GitConfig:\n>          if self.__cache.has_key(name):\n>              return self.__cache[name]\n>          try:\n> -            value = Run('git', 'repo-config', '--get', name).output_one_line()\n> +            value = Run('git', 'config', '--get', name).output_one_line()\n>          except RunException:\n>              value = self.__defaults.get(name, None)\n>          self.__cache[name] = value\n\nStrange that StGIT didn't abstracted out reading git config, like\nGit.pm and gitweb.perl did.\n\nBTW. will StGIT be using libgit-thin + PyGit, or is it not ready yet?\n\n-- \nJakub Narebski\nPoland\nShadeHawk on #git\n"},{"id":"65609","messageId":"200801162246.21854.kumbayo84@arcor.de","threadId":"11636","inReplyTo":"m3y7aplbie.fsf@roke.D-201","subject":"Re: [STGIT PATCH] replace \"git repo-config\" usage by \"git config\"","fromName":"Peter Oberndorfer","fromEmail":"kumbayo84@arcor.de","sentAt":"2008-01-16T21:46:21Z","receivedAt":"2008-01-16T21:46:21Z","isPatch":true,"sender":{"key":"kumbayo84@arcor.de","avatar":"https://avatars.githubusercontent.com/u/1041267?v=4"},"body":"On Mittwoch 16 Januar 2008, Jakub Narebski wrote:\n> Peter Oberndorfer <kumbayo84@arcor.de> writes:\n> \n> > \"git repo-config\" will be removed soon\n> > \n> > Signed-off-by: Peter Oberndorfer <kumbayo84@arcor.de>\n> > ---\n> > since i am not good at creating log messages, feel free to change it :-)\n> > built on top of kha experimental patch\n> > passes all testcases for me\n> \n> > @@ -47,7 +47,7 @@ class GitConfig:\n> >          if self.__cache.has_key(name):\n> >              return self.__cache[name]\n> >          try:\n> > -            value = Run('git', 'repo-config', '--get', \nname).output_one_line()\n> > +            value = Run('git', 'config', '--get', name).output_one_line()\n> >          except RunException:\n> >              value = self.__defaults.get(name, None)\n> >          self.__cache[name] = value\n> \n> Strange that StGIT didn't abstracted out reading git config, like\n> Git.pm and gitweb.perl did.\n> \nIt is abstracted, that is why the patch only affectes stgit/config.py :-)\n(beside tests)\nOr do you mean another type of abstraction like loading the whole config file \nat once?\n> BTW. will StGIT be using libgit-thin + PyGit, or is it not ready yet?\n> \nI did not hear about it lately.\nBut since i do not create stgit patches very often i have to say actually i \nactually have no idea.\n\nGreetings Peter\n"},{"id":"65695","messageId":"20080117074559.GB25213@diana.vm.bytemark.co.uk","threadId":"11636","inReplyTo":"200801162158.26450.kumbayo84@arcor.de","subject":"Re: [STGIT PATCH] replace \"git repo-config\" usage by \"git config\"","fromName":"Karl Hasselström","fromEmail":"kha@treskal.com","sentAt":"2008-01-17T07:45:59Z","receivedAt":"2008-01-17T07:45:59Z","isPatch":true,"sender":{"key":"kha@treskal.com","avatar":"https://gravatar.com/avatar/f0120c734b5279b345075a28521e1ac66acb20c9913ffe9bf6ae97e53f7f3f13?d=mp&s=160"},"body":"On 2008-01-16 21:58:26 +0100, Peter Oberndorfer wrote:\n\n> \"git repo-config\" will be removed soon\n>\n> Signed-off-by: Peter Oberndorfer <kumbayo84@arcor.de>\n\nThanks, I'll apply this tonight. (Along with Pavel's \"stg edit --sign\"\npatch, which I've been neglecting for quite a while now. Sorry!)\n\n> since i am not good at creating log messages, feel free to change it :-)\n\nI'm going to end the commit message body sentence with a period, but\notherwise it's totally OK.\n\n-- \nKarl Hasselström, kha@treskal.com\n      www.treskal.com/kalle\n"},{"id":"65732","messageId":"b0943d9e0801170907x9c4721cy4e5ac886eb61e0a5@mail.gmail.com","threadId":"11636","inReplyTo":"m3y7aplbie.fsf@roke.D-201","subject":"Re: [STGIT PATCH] replace \"git repo-config\" usage by \"git config\"","fromName":"Catalin Marinas","fromEmail":"catalin.marinas@gmail.com","sentAt":"2008-01-17T17:07:17Z","receivedAt":"2008-01-17T17:07:17Z","isPatch":true,"sender":{"key":"catalin.marinas@gmail.com","avatar":null},"body":"Hi,\n\nNow I'm back from holiday and I'll start merging patches. Thanks for the fixes.\n\nOn 16/01/2008, Jakub Narebski <jnareb@gmail.com> wrote:\n> Strange that StGIT didn't abstracted out reading git config, like\n> Git.pm and gitweb.perl did.\n\nThe initial implementation was to use Python to parse the config file\nbut it was dropped in favour of the git-config tool. It might be a bit\nslower but, at least, we don't need to follow any future syntax\nchanges.\n\n> BTW. will StGIT be using libgit-thin + PyGit, or is it not ready yet?\n\nThe last commit to the libgit project seems to be in August 2007. Is\nit still maintained? If GIT will provide a stable API and library, we\nmight use it but I don't think it would bring a great performance\nimprovement. Most of the time, in my case, seems to be spent in calls\nlist git-diff-tree. A few tens of milliseconds avoided by not calling\nan external tool would be unnoticed.\n\n-- \nCatalin\n"},{"id":"65797","messageId":"200801180049.19174.jnareb@gmail.com","threadId":"11636","inReplyTo":"b0943d9e0801170907x9c4721cy4e5ac886eb61e0a5@mail.gmail.com","subject":"Re: [STGIT PATCH] replace \"git repo-config\" usage by \"git config\"","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2008-01-17T23:49:18Z","receivedAt":"2008-01-17T23:49:18Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"On Thu, 17 January 2008, Catalin Marinas wrote:\n>\n> Now I'm back from holiday and I'll start merging patches.\n> Thanks for the fixes. \n> \n> On 16/01/2008, Jakub Narebski <jnareb@gmail.com> wrote:\n> > Strange that StGIT didn't abstracted out reading git config, like\n> > Git.pm and gitweb.perl did.\n> \n> The initial implementation was to use Python to parse the config file\n> but it was dropped in favour of the git-config tool. It might be a bit\n> slower but, at least, we don't need to follow any future syntax\n> changes.\n\nErrr... this is not what I meant. What I meant here is why StGit doesn't\nhave a thin wrapper around \"git config\", so instead of all those calls\nto \"Run('git', 'config', '--get', name)\" use \"git_config(name)\" etc.,\nsimilarly to Git.pm and gitweb.perl (which also use git-config to parse\nthe config file; only git-cvsimport parses config file in Perl IIRC).\n\nThis way if you want to load the whole config file at once (like gitweb\nnow does, using \"git config -z -l\") you would have to make changes only\nin one place.\n\n-- \nJakub Narebski\nPoland\n"},{"id":"65821","messageId":"20080118042447.GA13178@diana.vm.bytemark.co.uk","threadId":"11636","inReplyTo":"20080117074559.GB25213@diana.vm.bytemark.co.uk","subject":"Re: [STGIT PATCH] replace \"git repo-config\" usage by \"git config\"","fromName":"Karl Hasselström","fromEmail":"kha@treskal.com","sentAt":"2008-01-18T04:24:47Z","receivedAt":"2008-01-18T04:24:47Z","isPatch":true,"sender":{"key":"kha@treskal.com","avatar":"https://gravatar.com/avatar/f0120c734b5279b345075a28521e1ac66acb20c9913ffe9bf6ae97e53f7f3f13?d=mp&s=160"},"body":"On 2008-01-17 08:45:59 +0100, Karl Hasselström wrote:\n\n> Thanks, I'll apply this tonight. (Along with Pavel's \"stg edit --sign\"\n> patch, which I've been neglecting for quite a while now. Sorry!)\n\nThe following changes since commit 5b2666bab799830ac5e511f35103d04fc3968b32:\n  Catalin Marinas (1):\n        Remove a newline from the e-mail template\n\nare available in the git repository at:\n\n  git://repo.or.cz/stgit/kha.git safe\n\nDavid Kågedal (2):\n      Emacs mode: Add mark command\n      Emacs mode: coalesce command\n\nKarl Hasselström (12):\n      Teach the new infrastructure about the index and worktree\n      Let \"stg clean\" use the new transaction primitives\n      Let \"stg goto\" use the new infrastructure\n      Convert \"stg uncommit\" to the new infrastructure\n      New infrastructure: Make sure that the branch is initialized\n      Expose transaction abort function\n      stg coalesce: Support --file and --save-template\n      Set exit code to 3 on merge conflict\n      Convert \"stg commit\" to new infrastructure\n      Make \"stg commit\" fancier\n      Test that \"stg goto\" can be called from a subdirectory\n      Make \"stg goto\" subdirectory safe\n\nPavel Roskin (1):\n      Fix \"stg edit --sign\"\n\nPeter Oberndorfer (2):\n      Don't mention removed \"stg refresh\" options\n      replace \"git repo-config\" usage by \"git config\"\n\n contrib/stgit.el              |   97 ++++++++++++++++++-----\n stgit/commands/clean.py       |   35 ++------\n stgit/commands/coalesce.py    |  118 ++++++++++++++++++---------\n stgit/commands/commit.py      |  111 ++++++++++++++++----------\n stgit/commands/edit.py        |    5 +-\n stgit/commands/goto.py        |   52 ++++--------\n stgit/commands/refresh.py     |    8 +-\n stgit/commands/uncommit.py    |   81 ++++++++-----------\n stgit/config.py               |   14 ++--\n stgit/lib/git.py              |  128 +++++++++++++++++++++++++++++\n stgit/lib/stack.py            |   10 ++-\n stgit/lib/stackupgrade.py     |    6 +-\n stgit/lib/transaction.py      |  178 +++++++++++++++++++++++++++++++++++------\n stgit/main.py                 |    4 +-\n stgit/run.py                  |    9 ++-\n stgit/utils.py                |    1 +\n t/t1300-uncommit.sh           |   12 ++--\n t/t1900-mail.sh               |    2 +-\n t/t2100-pull-policy-fetch.sh  |    4 +-\n t/t2101-pull-policy-pull.sh   |    4 +-\n t/t2102-pull-policy-rebase.sh |    4 +-\n t/t2800-goto-subdir.sh        |   59 ++++++++++++++\n 22 files changed, 675 insertions(+), 267 deletions(-)\n create mode 100755 t/t2800-goto-subdir.sh\n\n                                  -+-\n\nThe following changes since commit 085902b45b9bea3fa5bc14470219891ec4ccba78:\n  Peter Oberndorfer (1):\n        replace \"git repo-config\" usage by \"git config\"\n\nare available in the git repository at:\n\n  git://repo.or.cz/stgit/kha.git experimental\n\nPeter Oberndorfer (1):\n      Add an --index option to \"stg refresh\"\n\n stgit/commands/refresh.py |   25 ++++++++++++++++---\n t/t2700-refresh.sh        |   57 ++++++++++++++++++++++++++++++++++++++++++++-\n 2 files changed, 77 insertions(+), 5 deletions(-)\n\n-- \nKarl Hasselström, kha@treskal.com\n      www.treskal.com/kalle\n"},{"id":"66390","messageId":"b0943d9e0801230335m4a2d1855uf465d0d134f3ef39@mail.gmail.com","threadId":"11636","inReplyTo":"20080118042447.GA13178@diana.vm.bytemark.co.uk","subject":"Re: [STGIT PATCH] replace \"git repo-config\" usage by \"git config\"","fromName":"Catalin Marinas","fromEmail":"catalin.marinas@gmail.com","sentAt":"2008-01-23T11:35:03Z","receivedAt":"2008-01-23T11:35:03Z","isPatch":true,"sender":{"key":"catalin.marinas@gmail.com","avatar":null},"body":"Hi Karl,\n\nOn 18/01/2008, Karl Hasselström <kha@treskal.com> wrote:\n> The following changes since commit 5b2666bab799830ac5e511f35103d04fc3968b32:\n>   Catalin Marinas (1):\n>         Remove a newline from the e-mail template\n>\n> are available in the git repository at:\n>\n>   git://repo.or.cz/stgit/kha.git safe\n[...]\n>       Teach the new infrastructure about the index and worktree\n>       Let \"stg clean\" use the new transaction primitives\n>       Let \"stg goto\" use the new infrastructure\n\nI merged your patches but I have some wishes. Could we keep pretty\nmuch the same reporting messages? For example, pushing reports a\nconflict but it no longer lists which files conflicted. The 'goto'\nchecks the local status before pushing but doesn't report this (and my\nmachine is slow and it might wait even 20 seconds or more, it is\nuseful to get some messages).\n\nThe pop/push commands report that the action took place. The one with\n\"action ... done\" was friendlier I think, especially with the 'pop'\ncommand reporting that it popped the patches but it waits quite a lot\nbefore returning.\n\nThanks.\n\n-- \nCatalin\n"},{"id":"66407","messageId":"20080123161014.GA5850@diana.vm.bytemark.co.uk","threadId":"11636","inReplyTo":"b0943d9e0801230335m4a2d1855uf465d0d134f3ef39@mail.gmail.com","subject":"Re: [STGIT PATCH] replace \"git repo-config\" usage by \"git config\"","fromName":"Karl Hasselström","fromEmail":"kha@treskal.com","sentAt":"2008-01-23T16:10:14Z","receivedAt":"2008-01-23T16:10:14Z","isPatch":true,"sender":{"key":"kha@treskal.com","avatar":"https://gravatar.com/avatar/f0120c734b5279b345075a28521e1ac66acb20c9913ffe9bf6ae97e53f7f3f13?d=mp&s=160"},"body":"On 2008-01-23 11:35:03 +0000, Catalin Marinas wrote:\n\n> On 18/01/2008, Karl Hasselström <kha@treskal.com> wrote:\n>\n> > The following changes since commit\n> > 5b2666bab799830ac5e511f35103d04fc3968b32:\n>\n> I merged your patches but I have some wishes. Could we keep pretty\n> much the same reporting messages? For example, pushing reports a\n> conflict but it no longer lists which files conflicted.\n\nMmm, that's a regression. Will try to see where that got lost.\n\n> The 'goto' checks the local status before pushing but doesn't report\n> this (and my machine is slow and it might wait even 20 seconds or\n> more, it is useful to get some messages).\n\nNo, it doesn't anymore, so it should be faster than before. Instead of\nchecking the entire tree for cleanliness, it just relies on\ngit-read-tree -u -m to abort without changes if any of the files that\nneed updating are dirty.\n\nThis goes for all commands using the new infrastructure, by the way.\nThey share a _lot_ of code.\n\n> The pop/push commands report that the action took place. The one\n> with \"action ... done\" was friendlier I think, especially with the\n> 'pop' command reporting that it popped the patches but it waits\n> quite a lot before returning.\n\nYes, I agree that the current output is not optimal.\n\n-- \nKarl Hasselström, kha@treskal.com\n      www.treskal.com/kalle\n"},{"id":"66412","messageId":"b0943d9e0801230842w250ab963t16a1ab3c8024487e@mail.gmail.com","threadId":"11636","inReplyTo":"20080123161014.GA5850@diana.vm.bytemark.co.uk","subject":"Re: [STGIT PATCH] replace \"git repo-config\" usage by \"git config\"","fromName":"Catalin Marinas","fromEmail":"catalin.marinas@gmail.com","sentAt":"2008-01-23T16:42:41Z","receivedAt":"2008-01-23T16:42:41Z","isPatch":true,"sender":{"key":"catalin.marinas@gmail.com","avatar":null},"body":"On 23/01/2008, Karl Hasselström <kha@treskal.com> wrote:\n> On 2008-01-23 11:35:03 +0000, Catalin Marinas wrote:\n> > The 'goto' checks the local status before pushing but doesn't report\n> > this (and my machine is slow and it might wait even 20 seconds or\n> > more, it is useful to get some messages).\n>\n> No, it doesn't anymore, so it should be faster than before. Instead of\n> checking the entire tree for cleanliness, it just relies on\n> git-read-tree -u -m to abort without changes if any of the files that\n> need updating are dirty.\n\nAh, OK. BTW, even if the tree was clean, a 'goto' failed on my Linux\ntree earlier today with the following message:\n\n$ stg goto realview-eb-header\nPopped realview-pb1176 -- realview-ioaddress\nfatal: Entry 'arch/arm/mach-realview/realview_pb11mp.c' not uptodate.\nCannot merge.\nstg goto: Command aborted (all changes rolled back)\n\nIt worked fine after running 'stg status' once (and not showing any\nchanges). In the old GIT interface, we use to call refresh_index (i.e.\n'git update-index -q --unmerged --refresh'). Does this still happen?\n\nThe message above also shows what I meant with messages not being very\nclear. It reports \"Popped\" but actually failed. Showing \"Popping ...\ndone\" would be better.\n\n-- \nCatalin\n"},{"id":"66452","messageId":"20080124070125.GA19653@diana.vm.bytemark.co.uk","threadId":"11636","inReplyTo":"b0943d9e0801230842w250ab963t16a1ab3c8024487e@mail.gmail.com","subject":"Re: [STGIT PATCH] replace \"git repo-config\" usage by \"git config\"","fromName":"Karl Hasselström","fromEmail":"kha@treskal.com","sentAt":"2008-01-24T07:01:25Z","receivedAt":"2008-01-24T07:01:25Z","isPatch":true,"sender":{"key":"kha@treskal.com","avatar":"https://gravatar.com/avatar/f0120c734b5279b345075a28521e1ac66acb20c9913ffe9bf6ae97e53f7f3f13?d=mp&s=160"},"body":"On 2008-01-23 16:42:41 +0000, Catalin Marinas wrote:\n\n> On 23/01/2008, Karl Hasselström <kha@treskal.com> wrote:\n>\n> > On 2008-01-23 11:35:03 +0000, Catalin Marinas wrote:\n> >\n> > > The 'goto' checks the local status before pushing\n> >\n> > No, it doesn't anymore\n>\n> Ah, OK. BTW, even if the tree was clean, a 'goto' failed on my Linux\n> tree earlier today with the following message:\n>\n> $ stg goto realview-eb-header\n> Popped realview-pb1176 -- realview-ioaddress\n> fatal: Entry 'arch/arm/mach-realview/realview_pb11mp.c' not uptodate.\n> Cannot merge.\n> stg goto: Command aborted (all changes rolled back)\n>\n> It worked fine after running 'stg status' once (and not showing any\n> changes). In the old GIT interface, we use to call refresh_index (i.e.\n> 'git update-index -q --unmerged --refresh'). Does this still happen?\n\nAh, no, I guess it doesn't. And I guess it should. We should probably\nhave a test for that ...\n\n> The message above also shows what I meant with messages not being\n> very clear. It reports \"Popped\" but actually failed. Showing\n> \"Popping ... done\" would be better.\n\nNot necessarily. Even with the latter message style, you'd sometimes\nget sequences like this:\n\n  Popping p3 -- p1 ... done\n  Pushing p4 ... done\n  Pushing p5 ... done\n  fatal: Entry 'some/annoying/file' not uptodate.\n  Cannot merge.\n  stg cool-command: Command aborted (all changes rolled back)\n\nThat is, the sequence of pushes and pops succeeded, but the changes\nwere still rolled back due to a dirty worktree.\n\nNow, this doesn't mean I don't agree with you about the \"done\"\nmessages -- they serve as a kind of progress bar -- but just because\nit says \"done\" doesn't mean the change will still be in effect when\nthe command returns.\n\nAnd there should probably be an explicit \"Checking out files ... done\"\nstage when we run git-read-tree, since that tends to take relatively\nmuch time.\n\n-- \nKarl Hasselström, kha@treskal.com\n      www.treskal.com/kalle\n"},{"id":"66480","messageId":"b0943d9e0801240731q856925al267d81548f5e2091@mail.gmail.com","threadId":"11636","inReplyTo":"20080124070125.GA19653@diana.vm.bytemark.co.uk","subject":"Re: [STGIT PATCH] replace \"git repo-config\" usage by \"git config\"","fromName":"Catalin Marinas","fromEmail":"catalin.marinas@gmail.com","sentAt":"2008-01-24T15:31:40Z","receivedAt":"2008-01-24T15:31:40Z","isPatch":true,"sender":{"key":"catalin.marinas@gmail.com","avatar":null},"body":"On 24/01/2008, Karl Hasselström <kha@treskal.com> wrote:\n> On 2008-01-23 16:42:41 +0000, Catalin Marinas wrote:\n> > $ stg goto realview-eb-header\n> > Popped realview-pb1176 -- realview-ioaddress\n> > fatal: Entry 'arch/arm/mach-realview/realview_pb11mp.c' not uptodate.\n> > Cannot merge.\n> > stg goto: Command aborted (all changes rolled back)\n> >\n> > It worked fine after running 'stg status' once (and not showing any\n> > changes). In the old GIT interface, we use to call refresh_index (i.e.\n> > 'git update-index -q --unmerged --refresh'). Does this still happen?\n>\n> Ah, no, I guess it doesn't. And I guess it should. We should probably\n> have a test for that ...\n\nYes.\n\nAnother thing, can the '--keep' option be added? Can it work with the\nnew structure? I use it quite often as I make some minor modification\nand I'd like to pop patches without affecting the local changes.\n\n> And there should probably be an explicit \"Checking out files ... done\"\n> stage when we run git-read-tree, since that tends to take relatively\n> much time.\n\nYes, that would be useful as well.\n\n-- \nCatalin\n"},{"id":"66496","messageId":"20080124180835.GA28723@diana.vm.bytemark.co.uk","threadId":"11636","inReplyTo":"b0943d9e0801240731q856925al267d81548f5e2091@mail.gmail.com","subject":"Re: [STGIT PATCH] replace \"git repo-config\" usage by \"git config\"","fromName":"Karl Hasselström","fromEmail":"kha@treskal.com","sentAt":"2008-01-24T18:08:35Z","receivedAt":"2008-01-24T18:08:35Z","isPatch":true,"sender":{"key":"kha@treskal.com","avatar":"https://gravatar.com/avatar/f0120c734b5279b345075a28521e1ac66acb20c9913ffe9bf6ae97e53f7f3f13?d=mp&s=160"},"body":"On 2008-01-24 15:31:40 +0000, Catalin Marinas wrote:\n\n> Another thing, can the '--keep' option be added? Can it work with\n> the new structure? I use it quite often as I make some minor\n> modification and I'd like to pop patches without affecting the local\n> changes.\n\nAs is, it works out of the box as long as your local changes are in\nfiles not touched by the command.\n\nMaking it work in other cases as well should be doable -- behind the\nscenes, we'd save the local changes much like a patch, and try to\napply it at the end. (In fact, we should probably not create this\n\"patch\" until git-read-tree tells us it can't do its job due to local\nchanges.)\n\nAdding the --keep flag once would make it available for all commands\nusing the new infrastructure.\n\n-- \nKarl Hasselström, kha@treskal.com\n      www.treskal.com/kalle\n"},{"id":"66500","messageId":"b0943d9e0801241020y3ca5e5bah973922c4fc99f733@mail.gmail.com","threadId":"11636","inReplyTo":"20080124180835.GA28723@diana.vm.bytemark.co.uk","subject":"Re: [STGIT PATCH] replace \"git repo-config\" usage by \"git config\"","fromName":"Catalin Marinas","fromEmail":"catalin.marinas@gmail.com","sentAt":"2008-01-24T18:20:01Z","receivedAt":"2008-01-24T18:20:01Z","isPatch":true,"sender":{"key":"catalin.marinas@gmail.com","avatar":null},"body":"On 24/01/2008, Karl Hasselström <kha@treskal.com> wrote:\n> On 2008-01-24 15:31:40 +0000, Catalin Marinas wrote:\n>\n> > Another thing, can the '--keep' option be added? Can it work with\n> > the new structure? I use it quite often as I make some minor\n> > modification and I'd like to pop patches without affecting the local\n> > changes.\n>\n> As is, it works out of the box as long as your local changes are in\n> files not touched by the command.\n\nIt used to work in this case as well :-).\n\n> Making it work in other cases as well should be doable -- behind the\n> scenes, we'd save the local changes much like a patch, and try to\n> apply it at the end. (In fact, we should probably not create this\n> \"patch\" until git-read-tree tells us it can't do its job due to local\n> changes.)\n\nMy simple approach was to apply the cumulated diff of the patches to\nbe popped in reverse (and change the top of the stack). If there are\nno conflicts, it works just fine. If it cannot do this, there might be\nconflicts and I create a temporary patch manually. Merging that patch\nwould probably lead to conflicts needing to be solved.\n\nFor the push operation, we try the diff applying followed by a\nthree-way merge if the former fails. We could do something similar\nwith the pop operation for keeping the local changes - try the\nreversed diff or create a temporary patch automatically.\n\nBut, I'd really like for this not to be enabled by default. I might\nforget to refresh a patch and will go to another just to realise that\nthere are uncommitted changes, hence the \"check_local_changes()\" call\nfor most of the commands affecting the stack.\n\n-- \nCatalin\n"}]}