git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Derrick Stolee <stolee@gmail.com>
Cc: Emily Shaffer <emilyshaffer@google.com>, git@vger.kernel.org
Subject: Re: What's cooking in git.git (Jan 2021, #02; Fri, 8)
Date: Thu, 14 Jan 2021 22:36:50 -0800	[thread overview]
Message-ID: <xmqqr1mmu2nx.fsf@gitster.c.googlers.com> (raw)
In-Reply-To: 15237c6c-98eb-0d1f-e6d5-2dda91c0ce09@gmail.com

Derrick Stolee <stolee@gmail.com> writes:

> Perhaps it would be better to have a --fixed-value patch on top
> of the merge that combines the two topics?

Thanks.  That is how we usually handle this kind of fallouts from
multiple topics.

In fact, there already are conflicting hunks in t/t7900 when the
topic is merged into the current 'master', and rerere database knows
about them; I'll need to teach "--fixed-value" to these places.

Here is how eventual merge of the topic into 'master' would resolve
conflicts.  The straight merge chain from master..seen would have
such a merge with the resolution shown below, but 'next' already has
a mismerge, so I'll be applying a single-parent commit to fix the
mismerge directly on 'next' (which I'll send in a separate message).

Thanks, all, for all the help.



diff --cc t/t7900-maintenance.sh
index 99bf0c7582,135505f619..0000000000
--- i/t/t7900-maintenance.sh
+++ w/t/t7900-maintenance.sh
@@@ -406,23 -380,11 +419,23 @@@ test_expect_success 'register and unreg
  	test_cmp before actual
  '
  
 +test_expect_success !MINGW 'register and unregister with regex metacharacters' '
 +	META="a+b*c" &&
 +	git init "$META" &&
 +	git -C "$META" maintenance register &&
 +	git config --get-all --show-origin maintenance.repo &&
 +	git config --get-all --global --fixed-value \
 +		maintenance.repo "$(pwd)/$META" &&
 +	git -C "$META" maintenance unregister &&
 +	test_must_fail git config --get-all --global --fixed-value \
 +		maintenance.repo "$(pwd)/$META"
 +'
 +
  test_expect_success 'start from empty cron table' '
- 	GIT_TEST_CRONTAB="test-tool crontab cron.txt" git maintenance start &&
+ 	GIT_TEST_MAINT_SCHEDULER="crontab:test-tool crontab cron.txt" git maintenance start &&
  
  	# start registers the repo
 -	git config --get --global maintenance.repo "$(pwd)" &&
 +	git config --get --global --fixed-value maintenance.repo "$(pwd)" &&
  
  	grep "for-each-repo --config=maintenance.repo maintenance run --schedule=daily" cron.txt &&
  	grep "for-each-repo --config=maintenance.repo maintenance run --schedule=hourly" cron.txt &&
@@@ -430,13 -392,13 +443,13 @@@
  '
  
  test_expect_success 'stop from existing schedule' '
- 	GIT_TEST_CRONTAB="test-tool crontab cron.txt" git maintenance stop &&
+ 	GIT_TEST_MAINT_SCHEDULER="crontab:test-tool crontab cron.txt" git maintenance stop &&
  
  	# stop does not unregister the repo
 -	git config --get --global maintenance.repo "$(pwd)" &&
 +	git config --get --global --fixed-value maintenance.repo "$(pwd)" &&
  
  	# Operation is idempotent
- 	GIT_TEST_CRONTAB="test-tool crontab cron.txt" git maintenance stop &&
+ 	GIT_TEST_MAINT_SCHEDULER="crontab:test-tool crontab cron.txt" git maintenance stop &&
  	test_must_be_empty cron.txt
  '
  
@@@ -446,22 -408,89 +459,105 @@@ test_expect_success 'start preserves ex
  	grep "Important information!" cron.txt
  '
  
 +test_expect_success 'magic markers are correct' '
 +	grep "GIT MAINTENANCE SCHEDULE" cron.txt >actual &&
 +	cat >expect <<-\EOF &&
 +	# BEGIN GIT MAINTENANCE SCHEDULE
 +	# END GIT MAINTENANCE SCHEDULE
 +	EOF
 +	test_cmp actual expect
 +'
 +
 +test_expect_success 'stop preserves surrounding schedule' '
 +	echo "Crucial information!" >>cron.txt &&
- 	GIT_TEST_CRONTAB="test-tool crontab cron.txt" git maintenance stop &&
++	GIT_TEST_MAINT_SCHEDULER="crontab:test-tool crontab cron.txt" git maintenance stop &&
 +	grep "Important information!" cron.txt &&
 +	grep "Crucial information!" cron.txt
 +'
 +
+ test_expect_success 'start and stop macOS maintenance' '
+ 	# ensure $HOME can be compared against hook arguments on all platforms
+ 	pfx=$(cd "$HOME" && pwd) &&
+ 
+ 	write_script print-args <<-\EOF &&
+ 	echo $* | sed "s:gui/[0-9][0-9]*:gui/[UID]:" >>args
+ 	EOF
+ 
+ 	rm -f args &&
+ 	GIT_TEST_MAINT_SCHEDULER=launchctl:./print-args git maintenance start &&
+ 
+ 	# start registers the repo
 -	git config --get --global maintenance.repo "$(pwd)" &&
++	git config --get --global --fixed-value maintenance.repo "$(pwd)" &&
+ 
+ 	ls "$HOME/Library/LaunchAgents" >actual &&
+ 	cat >expect <<-\EOF &&
+ 	org.git-scm.git.daily.plist
+ 	org.git-scm.git.hourly.plist
+ 	org.git-scm.git.weekly.plist
+ 	EOF
+ 	test_cmp expect actual &&
+ 
+ 	rm -f expect &&
+ 	for frequency in hourly daily weekly
+ 	do
+ 		PLIST="$pfx/Library/LaunchAgents/org.git-scm.git.$frequency.plist" &&
+ 		test_xmllint "$PLIST" &&
+ 		grep schedule=$frequency "$PLIST" &&
+ 		echo "bootout gui/[UID] $PLIST" >>expect &&
+ 		echo "bootstrap gui/[UID] $PLIST" >>expect || return 1
+ 	done &&
+ 	test_cmp expect args &&
+ 
+ 	rm -f args &&
+ 	GIT_TEST_MAINT_SCHEDULER=launchctl:./print-args git maintenance stop &&
+ 
+ 	# stop does not unregister the repo
 -	git config --get --global maintenance.repo "$(pwd)" &&
++	git config --get --global --fixed-value maintenance.repo "$(pwd)" &&
+ 
+ 	printf "bootout gui/[UID] $pfx/Library/LaunchAgents/org.git-scm.git.%s.plist\n" \
+ 		hourly daily weekly >expect &&
+ 	test_cmp expect args &&
+ 	ls "$HOME/Library/LaunchAgents" >actual &&
+ 	test_line_count = 0 actual
+ '
+ 
+ test_expect_success 'start and stop Windows maintenance' '
+ 	write_script print-args <<-\EOF &&
+ 	echo $* >>args
+ 	while test $# -gt 0
+ 	do
+ 		case "$1" in
+ 		/xml) shift; xmlfile=$1; break ;;
+ 		*) shift ;;
+ 		esac
+ 	done
+ 	test -z "$xmlfile" || cp "$xmlfile" "$xmlfile.xml"
+ 	EOF
+ 
+ 	rm -f args &&
+ 	GIT_TEST_MAINT_SCHEDULER="schtasks:./print-args" git maintenance start &&
+ 
+ 	# start registers the repo
 -	git config --get --global maintenance.repo "$(pwd)" &&
++	git config --get --global --fixed-value maintenance.repo "$(pwd)" &&
+ 
+ 	for frequency in hourly daily weekly
+ 	do
+ 		grep "/create /tn Git Maintenance ($frequency) /f /xml" args &&
+ 		file=$(ls .git/schedule_${frequency}*.xml) &&
+ 		test_xmllint "$file" || return 1
+ 	done &&
+ 
+ 	rm -f args &&
+ 	GIT_TEST_MAINT_SCHEDULER="schtasks:./print-args" git maintenance stop &&
+ 
+ 	# stop does not unregister the repo
 -	git config --get --global maintenance.repo "$(pwd)" &&
++	git config --get --global --fixed-value maintenance.repo "$(pwd)" &&
+ 
+ 	printf "/delete /tn Git Maintenance (%s) /f\n" \
+ 		hourly daily weekly >expect &&
+ 	test_cmp expect args
+ '
+ 
  test_expect_success 'register preserves existing strategy' '
  	git config maintenance.strategy none &&
  	git maintenance register &&


  parent reply	other threads:[~2021-01-15  6:37 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-08 19:22 What's cooking in git.git (Jan 2021, #02; Fri, 8) Junio C Hamano
2021-01-09 10:55 ` Ævar Arnfjörð Bjarmason
2021-01-09 21:28   ` Junio C Hamano
2021-01-09 22:05     ` brian m. carlson
2021-01-09 23:20       ` Junio C Hamano
2021-01-11  1:53         ` brian m. carlson
2021-01-11 19:04           ` Junio C Hamano
2021-01-12 14:00             ` Ævar Arnfjörð Bjarmason
2021-01-14 23:52               ` Emily Shaffer
2021-01-14 23:56                 ` Emily Shaffer
2021-01-15  7:22                   ` Junio C Hamano
2021-01-15  0:29                 ` brian m. carlson
2021-01-15  1:44                 ` Junio C Hamano
2021-01-16 16:23                 ` Ævar Arnfjörð Bjarmason
2021-01-17 17:15                   ` Jeff King
2021-01-17 20:22                     ` Ævar Arnfjörð Bjarmason
2021-01-10 19:00     ` Ævar Arnfjörð Bjarmason
2021-01-11  0:21       ` Junio C Hamano
2021-01-09 21:38 ` David Aguilar
2021-01-09 23:08   ` Junio C Hamano
2021-01-14 23:06 ` Emily Shaffer
2021-01-15  1:50   ` Junio C Hamano
2021-01-15  2:24     ` Taylor Blau
2021-01-15  2:44       ` Taylor Blau
2021-01-15  2:36   ` Derrick Stolee
2021-01-15  2:54     ` Derrick Stolee
2021-01-15  6:36     ` Junio C Hamano [this message]
2021-01-15  6:38       ` Junio C Hamano
2021-01-15 11:36         ` Derrick Stolee
2021-01-15 19:44           ` Junio C Hamano
2021-01-15 20:08             ` Emily Shaffer
2021-01-15 20:59               ` Junio C Hamano
2021-01-15 19:52 ` Jeff King
2021-01-15 21:40   ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqr1mmu2nx.fsf@gitster.c.googlers.com \
    --to=gitster@pobox.com \
    --cc=emilyshaffer@google.com \
    --cc=git@vger.kernel.org \
    --cc=stolee@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).