@@ -745,33 +745,80 @@
745 745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("%-15s %6d\n", "Other:", g.parseCnt[CFTYPE_ANY] - subtotal);
746 746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
747 747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
748 748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
749 749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** COMMAND: test-detach
751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Usage: %fossil test-detach ?REPOSITORY?
753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Change the project-code and make other changes in order to prevent
755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the repository from ever again pushing or pulling to other
756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** repositories. Used to create a "test" repository for development
757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** testing by cloning a working project repository.
750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** COMMAND: detach*
751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Usage: %fossil detach ?REPOSITORY?
753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Change the project-code and make other changes to REPOSITORY so that
755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** it becomes a new and distinct child project. After being detached,
756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** REPOSITORY will not longer be able to push and pull from other clones
757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of the original project. However REPOSITORY will still be able to pull
758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** from those other clones using the --from-parent-project option of the
759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** "fossil pull" command.
760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This is an experts-only command. You should not use this command unless
762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** you fully understand what you are doing.
763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The original use-case for this command was to create test repositories
765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** from real-world working repositories that could be safely altered by
766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** making strange commits or other changes, without having to worry that
767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** those test changes would leak back into the original project via an
768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** accidental auto-sync.
758 769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
759 770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void test_detach_cmd(void){
771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zXfer[] = {
772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "project-name", "parent-project-name",
773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "project-code", "parent-project-code",
774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "last-sync-url", "parent-project-url",
775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "last-sync-pw", "parent-project-pw"
776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i;
778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob ans;
779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char cReply;
760 780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_find_and_open_repository(0, 2);
781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ prompt_user("This change will be difficult to undo. Are you sure (y/N)? ",
782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ &ans);
783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cReply = blob_str(&ans)[0];
784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( cReply!='y' && cReply!='Y' ) return;
761 785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_begin_transaction();
762 786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_unprotect(PROTECT_CONFIG);
787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<ArraySize(zXfer)-1; i+=2 ){
788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_multi_exec(
789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "REPLACE INTO config(name,value,mtime)"
790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " SELECT %Q, value, now() FROM config WHERE name=%Q",
791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zXfer[i+1], zXfer[i]
792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
763 794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec(
764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "DELETE FROM config WHERE name GLOB 'last-sync-*';"
765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "DELETE FROM config WHERE name GLOB 'sync-*:*';"
795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "DELETE FROM config WHERE name IN"
796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "(WITH pattern(x) AS (VALUES"
797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " ('baseurl:*'),"
798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " ('cert:*'),"
799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " ('ckout:*'),"
800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " ('gitpush:*'),"
801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " ('http-auth:*'),"
802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " ('last-sync-*'),"
803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " ('link:*'),"
804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " ('login-group-*'),"
805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " ('peer-*'),"
806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " ('subrepo:*'),"
807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " ('sync-*'),"
808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " ('syncfrom:*'),"
809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " ('syncwith:*'),"
810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " ('ssl-*')"
811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ") SELECT name FROM config, pattern WHERE name GLOB x);"
766 812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"UPDATE config SET value=lower(hex(randomblob(20)))"
767 813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" WHERE name='project-code';"
768 814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"UPDATE config SET value='detached-' || value"
769 815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" WHERE name='project-name' AND value NOT GLOB 'detached-*';"
770 816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
771 817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_protect_pop();
772 818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_end_transaction(0);
819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print("New project code: %s\n", db_get("project-code",""));
773 820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
774 821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
775 822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
776 823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** COMMAND: test-create-clusters
777 824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -929,10 +976,11 @@
929 976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" ('gitpush:*'),"
930 977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" ('http-auth:*'),"
931 978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" ('last-sync-*'),"
932 979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" ('link:*'),"
933 980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" ('login-group-*'),"
981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " ('parent-project-*'),"
934 982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" ('peer-*'),"
935 983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" ('skin:*'),"
936 984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" ('subrepo:*'),"
937 985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" ('sync-*'),"
938 986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" ('syncfrom:*'),"
939 987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!