@@ -1406,11 +1406,11 @@
1406 1406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Returns true if the checkin identified by the first parameter is
1407 1407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** older than the given (valid) date/time string, else returns false.
1408 1408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Also returns true if rid does not refer to a checkin, but it is not
1409 1409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** intended to be used for that case.
1410 1410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int checkin_is_younger(
1411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int checkin_is_younger(
1412 1412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rid, /* The record ID of the ancestor */
1413 1413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zDate /* Date & time of the current check-in */
1414 1414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1415 1415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return db_exists(
1416 1416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"SELECT 1 FROM event"
@@ -2694,1308 +2694,5 @@
2694 2694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("**** warning: a fork has occurred *****\n");
2695 2695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
2696 2696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
leaf_ambiguity_warning(nvid,nvid);
2697 2697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2698 2698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
2700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** State for the "mini-checkin" infrastructure, which enables the
2702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** ability to commit changes to a single file without a checkout
2703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** db, e.g. for use via an HTTP request.
2704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
2705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Use CheckinMiniInfo_init() to cleanly initialize one to a known
2706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** valid/empty default state.
2707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
2708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Memory for all non-const (char *) members is owned by the
2709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** CheckinMiniInfo instance and is freed by CheckinMiniInfo_cleanup().
2710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct CheckinMiniInfo {
2712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Manifest * pParent; /* parent checkin. Memory is owned by this
2713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- object. */
2714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zParentUuid; /* Full UUID of pParent */
2715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zFilename; /* Name of single file to commit. Must be
2716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- relative to the top of the repo. */
2717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob fileContent; /* Content of file referred to by zFilename. */
2718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob fileHash; /* Hash of this->fileContent, using the repo's
2719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- preferred hash method. */
2720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob comment; /* Check-in comment text */
2721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zMimetype; /* Mimetype of comment. May be NULL */
2722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zUser; /* User name */
2723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zDate; /* Optionally force this date string (anything
2724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- supported by date_in_standard_format()).
2725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Maybe be NULL. */
2726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob *pMfOut; /* If not NULL, checkin_mini() will write a
2727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- copy of the generated manifest here. This
2728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memory is NOT owned by CheckinMiniInfo. */
2729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int filePerm; /* Permissions (via file_perm()) of the input
2730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- file. We need to store this before calling
2731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- checkin_mini() because the real input file
2732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- name may differ from the repo-centric
2733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- this->zFilename, and checkin_mini() requires
2734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- the permissions of the original file. For
2735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- web commits, set this to PERM_REG or (when
2736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- editing executable scripts) PERM_EXE before
2737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- calling checkin_mini(). */
2738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int flags; /* Bitmask of fossil_cimini_flags. */
2739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
2740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- typedef struct CheckinMiniInfo CheckinMiniInfo;
2741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
2742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** CheckinMiniInfo::flags values.
2744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- enum fossil_cimini_flags {
2746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CIMINI_NONE = 0,
2747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Tells checkin_mini() to use dry-run mode.
2749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CIMINI_DRY_RUN = 1,
2751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Tells checkin_mini() to allow forking from a non-leaf commit.
2753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CIMINI_ALLOW_FORK = 1<<1,
2755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Tells checkin_mini() to dump its generated manifest to stdout.
2757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CIMINI_DUMP_MANIFEST = 1<<2,
2759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
2760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** By default, content containing what appears to be a merge conflict
2762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** marker is not permitted. This flag relaxes that requirement.
2763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CIMINI_ALLOW_MERGE_MARKER = 1<<3,
2765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
2766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** By default mini-checkins are not allowed to be "older"
2768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** than their parent. i.e. they may not have a timestamp
2769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** which predates their parent. This flag bypasses that
2770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** check.
2771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CIMINI_ALLOW_OLDER = 1<<4,
2773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
2774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Indicates that the content of the newly-checked-in file is
2776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** converted, if needed, to use the same EOL style as the previous
2777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** version of that file. Only the in-memory/in-repo copies are
2778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** affected, not the original file (if any).
2779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CIMINI_CONVERT_EOL_INHERIT = 1<<5,
2781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Indicates that the input's EOLs should be converted to Unix-style.
2783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CIMINI_CONVERT_EOL_UNIX = 1<<6,
2785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Indicates that the input's EOLs should be converted to Windows-style.
2787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CIMINI_CONVERT_EOL_WINDOWS = 1<<7,
2789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** A hint to checkin_mini() to "prefer" creation of a delta manifest.
2791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** It may decide not to for various reasons.
2792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CIMINI_PREFER_DELTA = 1<<8,
2794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** A "stronger hint" to checkin_mini() to prefer creation of a delta
2796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** manifest if it at all can. It will decide not to only if creation
2797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** of a delta is not a realistic option. For this to work, it must be
2798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** set together with the CIMINI_PREFER_DELTA flag, but the two cannot
2799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** be combined in this enum.
2800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
2801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This option is ONLY INTENDED FOR TESTING, used in bypassing
2802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** heuristics which may otherwise disable generation of a delta on the
2803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** grounds of efficiency (e.g. not generating a delta if the parent
2804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** non-delta only has a few F-cards).
2805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
2806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The forbid-delta-manifests repo config option trumps this.
2807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CIMINI_STRONGLY_PREFER_DELTA = 1<<9,
2809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Tells checkin_mini() to permit the addition of a new file. Normally
2811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** this is disabled because there are many cases where it could cause
2812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the inadvertent addition of a new file when an update to an
2813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** existing was intended, as a side-effect of name-case differences.
2814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CIMINI_ALLOW_NEW_FILE = 1<<10
2816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
2817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
2818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Initializes p to a known-valid default state.
2820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void CheckinMiniInfo_init( CheckinMiniInfo * p ){
2822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(p, 0, sizeof(CheckinMiniInfo));
2823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->flags = CIMINI_NONE;
2824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->filePerm = -1;
2825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->comment = p->fileContent = p->fileHash = empty_blob;
2826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
2828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Frees all memory owned by p, but does not free p.
2830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void CheckinMiniInfo_cleanup( CheckinMiniInfo * p ){
2832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_reset(&p->comment);
2833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_reset(&p->fileContent);
2834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_reset(&p->fileHash);
2835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(p->pParent){
2836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- manifest_destroy(p->pParent);
2837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_free(p->zFilename);
2839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_free(p->zDate);
2840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_free(p->zParentUuid);
2841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_free(p->zMimetype);
2842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_free(p->zUser);
2843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CheckinMiniInfo_init(p);
2844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
2846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Internal helper which returns an F-card perms string suitable for
2848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** writing into a manifest.
2849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static const char * mfile_permint_mstring(int perm){
2851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- switch(perm){
2852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case PERM_EXE: return " x";
2853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case PERM_LNK: return " l";
2854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- default: return "";
2855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
2858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Given a ManifestFile permission string (or NULL), it returns one of
2860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** PERM_REG, PERM_EXE, or PERM_LNK.
2861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int mfile_permstr_int(const char *zPerm){
2863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!zPerm || !*zPerm) return PERM_REG;
2864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- else if(strstr(zPerm,"x")) return PERM_EXE;
2865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- else if(strstr(zPerm,"l")) return PERM_LNK;
2866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- else return PERM_REG/*???*/;
2867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
2869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static const char * mfile_perm_mstring(const ManifestFile * p){
2870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return mfile_permint_mstring(manifest_file_mperm(p));
2871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
2873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Internal helper for checkin_mini() and friends. Appends an F-card
2875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** for p to pOut.
2876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void checkin_mini_append_fcard(Blob *pOut, const ManifestFile *p){
2878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(p->zUuid){
2879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(*p->zUuid);
2880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(pOut, "F %F %s%s", p->zName,
2881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->zUuid, mfile_perm_mstring(p));
2882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(p->zPrior){
2883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(*p->zPrior);
2884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(pOut, " %F\n", p->zPrior);
2885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
2886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_append(pOut, "\n", 1);
2887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
2889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* File was removed from parent delta. */
2890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(pOut, "F %F\n", p->zName);
2891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Handles the F-card parts for create_manifest_mini().
2895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
2896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If asDelta is true, F-cards will be handled as for a delta
2897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** manifest, and the caller MUST have added a B-card to pOut before
2898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** calling this.
2899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
2900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Returns 1 on success, 0 on error, and writes any error message to
2901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** pErr (if it's not NULL). The only non-immediately-fatal/panic error
2902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is if pCI->filePerm is PERM_LNK or pCI would update a PERM_LNK
2903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** in-repo file.
2904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int create_manifest_mini_fcards( Blob * pOut,
2906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CheckinMiniInfo * pCI,
2907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int asDelta,
2908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob * pErr){
2909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int wroteThisCard = 0;
2910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const ManifestFile * pFile;
2911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int (*fncmp)(char const *, char const *) = /* filename comparator */
2912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- filenames_are_case_sensitive()
2913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ? fossil_strcmp
2914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- : fossil_stricmp;
2915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define mf_err(EXPR) if(pErr) blob_appendf EXPR; return 0
2916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define write_this_card(NAME) \
2917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(pOut, "F %F %b%s\n", (NAME), &pCI->fileHash, \
2918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- mfile_permint_mstring(pCI->filePerm)); \
2919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- wroteThisCard = 1
2920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
2921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(pCI->filePerm!=PERM_LNK && "This should have been validated before.");
2922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(pCI->filePerm==PERM_REG || pCI->filePerm==PERM_EXE);
2923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(PERM_LNK==pCI->filePerm){
2924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto err_no_symlink;
2925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- manifest_file_rewind(pCI->pParent);
2927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(asDelta!=0 && (pCI->pParent->zBaseline==0
2928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || pCI->pParent->nFile==0)){
2929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Parent is a baseline or a delta with no F-cards, so this is
2930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the simplest case: create a delta with a single F-card.
2931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile = manifest_file_find(pCI->pParent, pCI->zFilename);
2933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(pFile!=0 && manifest_file_mperm(pFile)==PERM_LNK){
2934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto err_no_symlink;
2935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- write_this_card(pFile ? pFile->zName : pCI->zFilename);
2937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 1;
2938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while(1){
2940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int cmp;
2941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(asDelta==0){
2942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile = manifest_file_next(pCI->pParent, 0);
2943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
2944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Parent is a delta manifest with F-cards. Traversal of delta
2945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** manifest file entries is normally done via
2946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** manifest_file_next(), which takes into account the
2947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** differences between the delta and its parent and returns
2948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** F-cards from both. Each successive delta from the same
2949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** baseline includes all F-card changes from the previous
2950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** deltas, so we instead clone the parent's F-cards except for
2951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the one (if any) which matches the new file.
2952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile = pCI->pParent->iFile < pCI->pParent->nFile
2954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ? &pCI->pParent->aFile[pCI->pParent->iFile++]
2955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- : 0;
2956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(0==pFile) break;
2958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cmp = fncmp(pFile->zName, pCI->zFilename);
2959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(cmp<0){
2960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- checkin_mini_append_fcard(pOut,pFile);
2961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
2962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(cmp==0 || 0==wroteThisCard){
2963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(0==wroteThisCard);
2964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(PERM_LNK==manifest_file_mperm(pFile)){
2965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto err_no_symlink;
2966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- write_this_card(cmp==0 ? pFile->zName : pCI->zFilename);
2968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(cmp>0){
2970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(wroteThisCard!=0);
2971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- checkin_mini_append_fcard(pOut,pFile);
2972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(wroteThisCard==0){
2976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- write_this_card(pCI->zFilename);
2977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 1;
2979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- err_no_symlink:
2980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- mf_err((pErr,"Cannot commit or overwrite symlinks "
2981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "via mini-checkin."));
2982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 0;
2983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #undef write_this_card
2984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #undef mf_err
2985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
2986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
2987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
2988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Creates a manifest file, written to pOut, from the state in the
2989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** fully-populated and semantically valid pCI argument. pCI is not
2990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** *semantically* modified but cannot be const because blob_str() may
2991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** need to NUL-terminate any given blob.
2992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
2993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Returns true on success. On error, returns 0 and, if pErr is not
2994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** NULL, writes an error message there.
2995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
2996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Intended only to be called via checkin_mini() or routines which
2997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** have already completely vetted pCI.
2998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
2999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int create_manifest_mini( Blob * pOut, CheckinMiniInfo * pCI,
3000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob * pErr){
3001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob zCard = empty_blob; /* Z-card checksum */
3002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int asDelta = 0;
3003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define mf_err(EXPR) if(pErr) blob_appendf EXPR; return 0
3004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(blob_str(&pCI->fileHash));
3006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(pCI->pParent);
3007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(pCI->zFilename);
3008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(pCI->zUser);
3009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(pCI->zDate);
3010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Potential TODOs include...
3012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** - Maybe add support for tags. Those can be edited via /info page,
3014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** and feel like YAGNI/feature creep for this purpose.
3015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
3016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_zero(pOut);
3017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- manifest_file_rewind(pCI->pParent) /* force load of baseline */;
3018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Determine whether we want to create a delta manifest... */
3019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if((CIMINI_PREFER_DELTA & pCI->flags)
3020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- && ((CIMINI_STRONGLY_PREFER_DELTA & pCI->flags)
3021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || (pCI->pParent->pBaseline
3022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ? pCI->pParent->pBaseline
3023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- : pCI->pParent)->nFile > 15
3024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 15 is arbitrary: don't create a delta when there is only a
3025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** tiny gain for doing so. That heuristic is not *quite*
3026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** right, in that when we're deriving from another delta, we
3027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** really should compare the F-card count between it and its
3028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** baseline, and create a delta if the baseline has (say)
3029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** twice or more as many F-cards as the previous delta. */)
3030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- && !db_get_boolean("forbid-delta-manifests",0)
3031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
3032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- asDelta = 1;
3033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(pOut, "B %s\n",
3034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pCI->pParent->zBaseline
3035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ? pCI->pParent->zBaseline
3036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- : pCI->zParentUuid);
3037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_reserve(pOut, 1024 *
3039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (asDelta ? 2 : pCI->pParent->nFile/11+1
3040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* In the fossil core repo, each 12-ish F-cards (on
3041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** average) take up roughly 1kb */));
3042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(blob_size(&pCI->comment)!=0){
3043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(pOut, "C %F\n", blob_str(&pCI->comment));
3044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
3045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_append(pOut, "C (no\\scomment)\n", 16);
3046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(pOut, "D %s\n", pCI->zDate);
3048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(create_manifest_mini_fcards(pOut,pCI,asDelta,pErr)==0){
3049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 0;
3050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(pCI->zMimetype!=0 && pCI->zMimetype[0]!=0){
3052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(pOut, "N %F\n", pCI->zMimetype);
3053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(pOut, "P %s\n", pCI->zParentUuid);
3055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(pOut, "U %F\n", pCI->zUser);
3056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- md5sum_blob(pOut, &zCard);
3057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(pOut, "Z %b\n", &zCard);
3058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_reset(&zCard);
3059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 1;
3060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #undef mf_err
3061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
3064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** EXPERIMENTAL! Subject to change or removal at any time.
3065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** A so-called "single-file/mini/web checkin" is a slimmed-down form
3067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** of the checkin command which accepts only a single file and is
3068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** intended to accept edits to a file via the web interface or from
3069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the CLI from outside of a checkout.
3070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Being fully non-interactive is a requirement for this function,
3072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** thus it cannot perform autosync or similar activities.
3073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This routine uses the state from the given fully-populated pCI
3075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** argument to add pCI->fileContent to the database, and create and
3076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** save a manifest for that change. Ownership of pCI and its contents
3077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** are unchanged.
3078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This function may may modify pCI as follows:
3080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** - If one of Manifest pCI->pParent or pCI->zParentUuid are NULL,
3082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** then the other will be assigned based on its counterpart. Both
3083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** may not be NULL.
3084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** - pCI->zDate is normalized to/replaced with a valid date/time
3086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** string. If its original value cannot be validated then
3087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** this function fails. If pCI->zDate is NULL, the current time
3088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is used.
3089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** - If the CIMINI_CONVERT_EOL_INHERIT flag is set,
3091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** pCI->fileContent appears to be plain text, and its line-ending
3092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** style differs from its previous version, it is converted to the
3093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** same EOL style as the previous version. If this is done, the
3094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** pCI->fileHash is re-computed. Note that only pCI->fileContent,
3095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** not the original file, is affected by the conversion.
3096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** - If pCI->fileHash is empty, this routine populates it with the
3098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** repository's preferred hash algorithm.
3099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** - pCI->comment may be converted to Unix-style newlines.
3101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** pCI's ownership is not modified.
3103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This function validates several of the inputs and fails if any
3105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** validation fails.
3106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** On error, returns false (0) and, if pErr is not NULL, writes a
3108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** diagnostic message there.
3109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Returns true on success. If pRid is not NULL, the RID of the
3111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** resulting manifest is written to *pRid.
3112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The checkin process is largely influenced by pCI->flags, and that
3114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** must be populated before calling this. See the fossil_cimini_flags
3115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** enum for the docs for each flag.
3116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
3117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int checkin_mini(CheckinMiniInfo * pCI, int *pRid, Blob * pErr){
3118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob mf = empty_blob; /* output manifest */
3119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int rid = 0, frid = 0; /* various RIDs */
3120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int isPrivate; /* whether this is private content
3121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- or not */
3122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ManifestFile * zFilePrev; /* file entry from pCI->pParent */
3123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int prevFRid = 0; /* RID of file's prev. version */
3124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define ci_err(EXPR) if(pErr!=0){blob_appendf EXPR;} goto ci_error
3125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!(pCI->flags & CIMINI_DRY_RUN)){
3127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Until this feature is fully vetted, disallow it in the main
3128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** fossil repo unless dry-run mode is being used. */
3129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char * zProjCode = db_get("project-code",0);
3130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(zProjCode);
3131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(0==fossil_stricmp("CE59BB9F186226D80E49D1FA2DB29F935CCA0333",
3132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zProjCode)){
3133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_fatal("Never, ever run this in/on the core fossil repo "
3134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "in non-dry-run mode until it's been well-vetted. "
3135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "Use a temp/test repo.");
3136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_free(zProjCode);
3138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_begin_transaction();
3140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(pCI->pParent==0 && pCI->zParentUuid==0){
3142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ci_err((pErr, "Cannot determine parent version."));
3143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- else if(pCI->pParent==0){
3145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pCI->pParent = manifest_get_by_name(pCI->zParentUuid, 0);
3146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(pCI->pParent==0){
3147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ci_err((pErr,"Cannot load manifest for [%S].", pCI->zParentUuid));
3148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if(pCI->zParentUuid==0){
3150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pCI->zParentUuid = rid_to_uuid(pCI->pParent->rid);
3151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(pCI->zParentUuid);
3152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(pCI->pParent->rid>0);
3155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(leaf_is_closed(pCI->pParent->rid)){
3156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ci_err((pErr,"Cannot commit to a closed leaf."));
3157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Remember that in order to override this we'd also need to
3158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** cancel TAG_CLOSED on pCI->pParent. There would seem to be no
3159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** reason we can't do that via the generated manifest, but the
3160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** commit command does not offer that option, so mini-checkin
3161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** probably shouldn't, either.
3162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
3163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !db_exists("SELECT 1 FROM user WHERE login=%Q", pCI->zUser) ){
3165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ci_err((pErr,"No such user: %s", pCI->zUser));
3166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!(CIMINI_ALLOW_FORK & pCI->flags)
3168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- && !is_a_leaf(pCI->pParent->rid)){
3169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ci_err((pErr,"Parent [%S] is not a leaf and forking is disabled.",
3170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pCI->zParentUuid));
3171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!(CIMINI_ALLOW_MERGE_MARKER & pCI->flags)
3173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- && contains_merge_marker(&pCI->fileContent)){
3174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ci_err((pErr,"Content appears to contain a merge conflict marker."));
3175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!file_is_simple_pathname(pCI->zFilename, 1)){
3177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ci_err((pErr,"Invalid filename for use in a repository: %s",
3178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pCI->zFilename));
3179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!(CIMINI_ALLOW_OLDER & pCI->flags)
3181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- && !checkin_is_younger(pCI->pParent->rid, pCI->zDate)){
3182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ci_err((pErr,"Checkin time (%s) may not be older "
3183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "than its parent (%z).",
3184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pCI->zDate,
3185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_text(0, "SELECT strftime('%%Y-%%m-%%dT%%H:%%M:%%f',%lf)",
3186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pCI->pParent->rDate)
3187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ));
3188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
3190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
3191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Normalize the timestamp. We don't use date_in_standard_format()
3192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** because that has side-effects we don't want to trigger here.
3193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
3194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char * zDVal = db_text(
3195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0, "SELECT strftime('%%Y-%%m-%%dT%%H:%%M:%%f',%Q)",
3196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pCI->zDate ? pCI->zDate : "now");
3197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(zDVal==0 || zDVal[0]==0){
3198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_free(zDVal);
3199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ci_err((pErr,"Invalid timestamp string: %s", pCI->zDate));
3200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_free(pCI->zDate);
3202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pCI->zDate = zDVal;
3203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { /* Confirm that only one EOL policy is in place. */
3205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int n = 0;
3206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(CIMINI_CONVERT_EOL_INHERIT & pCI->flags) ++n;
3207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(CIMINI_CONVERT_EOL_UNIX & pCI->flags) ++n;
3208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(CIMINI_CONVERT_EOL_WINDOWS & pCI->flags) ++n;
3209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(n>1){
3210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ci_err((pErr,"More than 1 EOL conversion policy was specified."));
3211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Potential TODOs include:
3214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** - Commit allows an empty checkin only with a flag, but we
3216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** currently disallow it entirely. Conform with commit?
3217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Non-TODOs:
3219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** - Check for a commit lock would require auto-sync, which this
3221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** code cannot do if it's going to be run via a web page.
3222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
3223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
3225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Confirm that pCI->zFilename can be found in pCI->pParent. If
3226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** not, fail unless the CIMINI_ALLOW_NEW_FILE flag is set. This is
3227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** admittedly an artificial limitation, not strictly necessary. We
3228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** do it to hopefully reduce the chance of an "oops" where file
3229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** X/Y/z gets committed as X/Y/Z or X/y/z due to a typo or
3230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** case-sensitivity mismatch between the user/repo/filesystem, or
3231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** some such.
3232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
3233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- manifest_file_rewind(pCI->pParent);
3234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFilePrev = manifest_file_find(pCI->pParent, pCI->zFilename);
3235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!(CIMINI_ALLOW_NEW_FILE & pCI->flags)
3236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- && (!zFilePrev
3237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || !zFilePrev->zUuid/*was removed from parent delta manifest*/)
3238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
3239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ci_err((pErr,"File [%s] not found in manifest [%S]. "
3240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "Adding new files is currently not permitted.",
3241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pCI->zFilename, pCI->zParentUuid));
3242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if(zFilePrev
3243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- && manifest_file_mperm(zFilePrev)==PERM_LNK){
3244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ci_err((pErr,"Cannot save a symlink via a mini-checkin."));
3245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(zFilePrev){
3247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- prevFRid = fast_uuid_to_rid(zFilePrev->zUuid);
3248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(((CIMINI_CONVERT_EOL_INHERIT & pCI->flags)
3251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || (CIMINI_CONVERT_EOL_UNIX & pCI->flags)
3252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || (CIMINI_CONVERT_EOL_WINDOWS & pCI->flags))
3253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- && blob_size(&pCI->fileContent)>0
3254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
3255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Convert to the requested EOL style. Note that this inherently
3256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** runs a risk of breaking content, e.g. string literals which
3257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** contain embedded newlines. Note that HTML5 specifies that
3258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** form-submitted TEXTAREA content gets normalized to CRLF-style:
3259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** https://html.spec.whatwg.org/multipage/form-elements.html#the-textarea-element
3261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
3262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const int pseudoBinary = LOOK_LONG | LOOK_NUL;
3263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const int lookFlags = LOOK_CRLF | pseudoBinary;
3264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const int lookNew = looks_like_utf8( &pCI->fileContent, lookFlags );
3265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!(pseudoBinary & lookNew)){
3266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int rehash = 0;
3267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(CIMINI_CONVERT_EOL_INHERIT & pCI->flags){
3268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob contentPrev = empty_blob;
3269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int lookOrig, nOrig;
3270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- content_get(prevFRid, &contentPrev);
3271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- lookOrig = looks_like_utf8(&contentPrev, lookFlags);
3272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- nOrig = blob_size(&contentPrev);
3273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_reset(&contentPrev);
3274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(nOrig>0 && lookOrig!=lookNew){
3275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* If there is a newline-style mismatch, adjust the new
3276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** content version to the previous style, then re-hash the
3277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** content. Note that this means that what we insert is NOT
3278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** what's in the filesystem.
3279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
3280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!(lookOrig & LOOK_CRLF) && (lookNew & LOOK_CRLF)){
3281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Old has Unix-style, new has Windows-style. */
3282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_to_lf_only(&pCI->fileContent);
3283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rehash = 1;
3284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if((lookOrig & LOOK_CRLF) && !(lookNew & LOOK_CRLF)){
3285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Old has Windows-style, new has Unix-style. */
3286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_add_cr(&pCI->fileContent);
3287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rehash = 1;
3288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
3291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const int oldSize = blob_size(&pCI->fileContent);
3292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(CIMINI_CONVERT_EOL_UNIX & pCI->flags){
3293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_to_lf_only(&pCI->fileContent);
3294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
3295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(CIMINI_CONVERT_EOL_WINDOWS & pCI->flags);
3296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_add_cr(&pCI->fileContent);
3297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(blob_size(&pCI->fileContent)!=oldSize){
3299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rehash = 1;
3300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(rehash!=0){
3303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- hname_hash(&pCI->fileContent, 0, &pCI->fileHash);
3304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }/* end EOL conversion */
3307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(blob_size(&pCI->fileHash)==0){
3309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Hash the content if it's not done already... */
3310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- hname_hash(&pCI->fileContent, 0, &pCI->fileHash);
3311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(blob_size(&pCI->fileHash)>0);
3312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(zFilePrev){
3314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Has this file been changed since its previous commit? Note
3315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** that we have to delay this check until after the potentially
3316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** expensive EOL conversion. */
3317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(blob_size(&pCI->fileHash));
3318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(0==fossil_strcmp(zFilePrev->zUuid, blob_str(&pCI->fileHash))
3319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- && manifest_file_mperm(zFilePrev)==pCI->filePerm){
3320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ci_err((pErr,"File is unchanged. Not saving."));
3321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if 1
3324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Do we really want to normalize comment EOLs? Web-posting will
3325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** submit them in CRLF format. */
3326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_to_lf_only(&pCI->comment);
3327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
3328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Create, save, deltify, and crosslink the manifest... */
3329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(create_manifest_mini(&mf, pCI, pErr)==0){
3330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 0;
3331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- isPrivate = content_is_private(pCI->pParent->rid);
3333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rid = content_put_ex(&mf, 0, 0, 0, isPrivate);
3334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(pCI->flags & CIMINI_DUMP_MANIFEST){
3335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("%b", &mf);
3336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(pCI->pMfOut!=0){
3338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Cross-linking clears mf, so we have to copy it,
3339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** instead of taking over its memory. */
3340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_reset(pCI->pMfOut);
3341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_append(pCI->pMfOut, blob_buffer(&mf), blob_size(&mf));
3342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- content_deltify(rid, &pCI->pParent->rid, 1, 0);
3344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- manifest_crosslink(rid, &mf, 0);
3345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_reset(&mf);
3346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Save and deltify the file content... */
3347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- frid = content_put_ex(&pCI->fileContent, blob_str(&pCI->fileHash),
3348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0, 0, isPrivate);
3349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(zFilePrev!=0){
3350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(prevFRid>0);
3351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- content_deltify(frid, &prevFRid, 1, 0);
3352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_end_transaction((CIMINI_DRY_RUN & pCI->flags) ? 1 : 0);
3354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(pRid!=0){
3355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *pRid = rid;
3356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 1;
3358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ci_error:
3359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(db_transaction_nesting_depth()>0);
3360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_end_transaction(1);
3361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 0;
3362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #undef ci_err
3363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
3366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** COMMAND: test-ci-mini
3367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This is an on-going experiment, subject to change or removal at
3369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** any time.
3370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Usage: %fossil test-ci-mini ?OPTIONS? FILENAME
3372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** where FILENAME is a repo-relative name as it would appear in the
3374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** vfile table.
3375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Options:
3377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --repository|-R REPO The repository file to commit to.
3379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --as FILENAME The repository-side name of the input
3380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** file, relative to the top of the
3381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** repository. Default is the same as the
3382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** input file name.
3383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --comment|-m COMMENT Required checkin comment.
3384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --comment-file|-M FILE Reads checkin comment from the given file.
3385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --revision|-r VERSION Commit from this version. Default is
3386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the checkout version (if available) or
3387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** trunk (if used without a checkout).
3388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --allow-fork Allows the commit to be made against a
3389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** non-leaf parent. Note that no autosync
3390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is performed beforehand.
3391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --allow-merge-conflict Allows checkin of a file even if it
3392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** appears to contain a fossil merge conflict
3393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** marker.
3394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --user-override USER USER to use instead of the current
3395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** default.
3396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --date-override DATETIME DATE to use instead of 'now'.
3397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --allow-older Allow a commit to be older than its
3398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** ancestor.
3399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --convert-eol Convert EOL style of the checkin to match
3400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the previous version's content. Does not
3401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** modify the input file, only the checked-in
3402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** content.
3403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --delta Prefer to generate a delta manifest, if
3404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** able. The forbid-delta-manifests repo
3405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** config option trumps this, as do certain
3406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** heuristics.
3407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --allow-new-file Allow addition of a new file this way.
3408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Disabled by default to avoid that case-
3409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** sensitivity errors inadvertently lead to
3410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** adding a new file where an update is
3411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** intended.
3412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --dump-manifest|-d Dumps the generated manifest to stdout
3413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** immediately after it's generated.
3414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --save-manifest FILE Saves the generated manifest to a file
3415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** after successfully processing it.
3416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --wet-run Disables the default dry-run mode.
3417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Example:
3419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** %fossil test-ci-mini -R REPO -m ... -r foo --as src/myfile.c myfile.c
3421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
3423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void test_ci_mini_cmd(){
3424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CheckinMiniInfo cimi; /* checkin state */
3425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int newRid = 0; /* RID of new version */
3426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char * zFilename; /* argv[2] */
3427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char * zComment; /* -m comment */
3428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char * zCommentFile; /* -M FILE */
3429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char * zAsFilename; /* --as filename */
3430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char * zRevision; /* --revision|-r [=trunk|checkout] */
3431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char * zUser; /* --user-override */
3432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char * zDate; /* --date-override */
3433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char const * zManifestFile = 0;/* --save-manifest FILE */
3434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* This function should perform only the minimal "business logic" it
3436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** needs in order to fully/properly populate the CheckinMiniInfo and
3437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** then pass it on to checkin_mini() to do most of the validation
3438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** and work. The point of this is to avoid duplicate code when a web
3439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** front-end is added for checkin_mini().
3440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
3441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CheckinMiniInfo_init(&cimi);
3442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zComment = find_option("comment","m",1);
3443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zCommentFile = find_option("comment-file","M",1);
3444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zAsFilename = find_option("as",0,1);
3445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zRevision = find_option("revision","r",1);
3446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zUser = find_option("user-override",0,1);
3447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zDate = find_option("date-override",0,1);
3448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zManifestFile = find_option("save-manifest",0,1);
3449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(find_option("wet-run",0,0)==0){
3450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags |= CIMINI_DRY_RUN;
3451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(find_option("allow-fork",0,0)!=0){
3453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags |= CIMINI_ALLOW_FORK;
3454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(find_option("dump-manifest","d",0)!=0){
3456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags |= CIMINI_DUMP_MANIFEST;
3457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(find_option("allow-merge-conflict",0,0)!=0){
3459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags |= CIMINI_ALLOW_MERGE_MARKER;
3460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(find_option("allow-older",0,0)!=0){
3462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags |= CIMINI_ALLOW_OLDER;
3463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(find_option("convert-eol-prev",0,0)!=0){
3465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags |= CIMINI_CONVERT_EOL_INHERIT;
3466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(find_option("delta",0,0)!=0){
3468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags |= CIMINI_PREFER_DELTA;
3469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(find_option("delta2",0,0)!=0){
3471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Undocumented. For testing only. */
3472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags |= CIMINI_PREFER_DELTA | CIMINI_STRONGLY_PREFER_DELTA;
3473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(find_option("allow-new-file",0,0)!=0){
3475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags |= CIMINI_ALLOW_NEW_FILE;
3476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_find_and_open_repository(0, 0);
3478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- verify_all_options();
3479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- user_select();
3480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(g.argc!=3){
3481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- usage("INFILE");
3482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(zComment && zCommentFile){
3484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_fatal("Only one of -m or -M, not both, may be used.");
3485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
3486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(zCommentFile && *zCommentFile){
3487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_read_from_file(&cimi.comment, zCommentFile, ExtFILE);
3488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if(zComment && *zComment){
3489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_append(&cimi.comment, zComment, -1);
3490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!blob_size(&cimi.comment)){
3492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_fatal("Non-empty checkin comment is required.");
3493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_begin_transaction();
3496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFilename = g.argv[2];
3497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.zFilename = mprintf("%/", zAsFilename ? zAsFilename : zFilename);
3498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.filePerm = file_perm(zFilename, ExtFILE);
3499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.zUser = mprintf("%s", zUser ? zUser : login_name());
3500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(zDate){
3501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.zDate = mprintf("%s", zDate);
3502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(zRevision==0 || zRevision[0]==0){
3504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(g.localOpen/*checkout*/){
3505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zRevision = db_lget("checkout-hash", 0)/*leak*/;
3506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
3507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zRevision = "trunk";
3508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- name_to_uuid2(zRevision, "ci", &cimi.zParentUuid);
3511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(cimi.zParentUuid==0){
3512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_fatal("Cannot determine version to commit to.");
3513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_read_from_file(&cimi.fileContent, zFilename, ExtFILE);
3515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
3516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob theManifest = empty_blob; /* --save-manifest target */
3517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob errMsg = empty_blob;
3518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int rc;
3519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(zManifestFile){
3520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.pMfOut = &theManifest;
3521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = checkin_mini(&cimi, &newRid, &errMsg);
3523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(rc){
3524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(blob_size(&errMsg)==0);
3525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
3526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(blob_size(&errMsg));
3527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_fatal("%b", &errMsg);
3528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(zManifestFile){
3530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("Writing manifest to: %s\n", zManifestFile);
3531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(blob_size(&theManifest)>0);
3532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_write_to_file(&theManifest, zManifestFile);
3533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_reset(&theManifest);
3534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(newRid!=0){
3537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("New version%s: %z\n",
3538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (cimi.flags & CIMINI_DRY_RUN) ? " (dry run)" : "",
3539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rid_to_uuid(newRid));
3540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_end_transaction(0/*checkin_mini() will have triggered it to roll
3542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** back in dry-run mode, but we need access to
3543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the transaction-written db state in this
3544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** routine.*/);
3545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!(cimi.flags & CIMINI_DRY_RUN) && newRid!=0 && g.localOpen!=0){
3546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_warning("The checkout state is now out of sync "
3547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "with regards to this commit. It needs to be "
3548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "'update'd or 'close'd and re-'open'ed.");
3549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CheckinMiniInfo_cleanup(&cimi);
3551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
3555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Returns true if the given filename qualifies for online editing by
3556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the current user, else returns false.
3557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Editing requires that the user have the Write permission and that
3559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the filename match the glob defined by the fileedit-glob setting.
3560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** A missing or empty value for that glob disables all editing.
3561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
3562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int fileedit_is_editable(const char *zFilename){
3563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static Glob * pGlobs = 0;
3564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int once = 0;
3565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(0==g.perm.Write || zFilename==0 || *zFilename==0
3566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || (once!=0 && pGlobs==0)){
3567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 0;
3568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if(0==pGlobs){
3569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char * zGlobs = db_get("fileedit-glob",0);
3570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- once = 1;
3571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(0==zGlobs) return 0;
3572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pGlobs = glob_create(zGlobs);
3573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_free(zGlobs);
3574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return glob_match(pGlobs, zFilename);
3576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void fileedit_emit_script(int phase){
3579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(0==phase){
3580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<script nonce='%s'>", style_nonce());
3581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
3582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("</script>\n");
3583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if 0
3587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
3588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This function is for potential TODO features for /fileedit.
3589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** It's been tested with that code but is not currently used
3590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** by it.
3591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
3592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void fileedit_emit_script_fetch(){
3593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fileedit_emit_script(0);
3594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("window.fossilFetch = function(path,opt){\n");
3595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" if('function'===typeof opt){\n");
3596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" opt={onload:opt};\n");
3597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" }else{\n");
3598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" opt=opt||{onload:function(r){console.debug('response:',r)}}\n");
3599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" }\n");
3600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" const url='%R/'+path, x=new XMLHttpRequest();\n");
3601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" x.open(opt.method||'GET', url, true);\n");
3602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" x.responseType=opt.responseType||'text';\n");
3603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" if(opt.onload){\n");
3604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" x.onload = function(e){\n");
3605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" if(200!==this.status){\n");
3606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" if(opt.onerror) opt.onerror(e);\n");
3607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" return;\n");
3608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" }\n");
3609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" opt.onload(this.response);\n");
3610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" }\n");
3611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" }\n");
3612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" x.send();");
3613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("};\n");
3614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fileedit_emit_script(1);
3615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
3616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif /* fileedit_emit_script_fetch() */
3617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
3619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Outputs a labeled checkbox element:
3620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** <span class='input-with-label' title={{zTip}}>
3622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** <input type='checkbox' name={{zFieldName}} value={{zValue}}
3623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** {{isChecked ? " checked : ""}}/>
3624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** <span>{{zLabel}}</span>
3625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** </span>
3626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** zFieldName, zLabel, and zValue are required. zTip is optional.
3628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
3629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void style_labeled_checkbox(const char *zFieldName,
3630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char * zLabel,
3631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char * zValue,
3632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char * zTip,
3633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int isChecked){
3634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<span class='input-with-label'");
3635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(zTip && *zTip){
3636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX(" title='%h'", zTip);
3637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("><input type='checkbox' name='%s' value='%T'%s/>",
3639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFieldName,
3640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zValue ? zValue : "", isChecked ? " checked" : "");
3641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<span>%h</span></span>", zLabel);
3642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
3645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** WEBPAGE: fileedit
3646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** EXPERIMENTAL and subject to change and removal at any time. The goal
3648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is to allow online edits of files.
3649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Query parameters:
3651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** file=FILENAME Repo-relative path to the file.
3653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** r=VERSION Checkin version, using any unambiguous
3654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** supported symbolic version name.
3655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** All other parameters are for internal use only, submitted via the
3657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** form-submission process, and may change with any given revision of
3658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** this code.
3659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
3660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void fileedit_page(){
3661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char * zFilename = PD("file",P("name")); /* filename */
3662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char * zRev = P("r"); /* checkin version */
3663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char * zContent = P("content"); /* file content */
3664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char * zComment = P("comment"); /* checkin comment */
3665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CheckinMiniInfo cimi; /* Checkin state */
3666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int submitMode = 0; /* See mapping below */
3667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int vid, newVid = 0; /* checkin rid */
3668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char * zFileUuid = 0; /* File content UUID */
3669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int frid = 0; /* File content rid */
3670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob err = empty_blob; /* Error report */
3671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char * zFlagCheck = 0; /* Temp url flag holder */
3672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob endScript = empty_blob; /* Script code to run at the
3673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- end. This content will be
3674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- combined into a single JS
3675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- function call, thus each
3676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- entry must end with a
3677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- semicolon. */
3678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Stmt stmt = empty_Stmt;
3679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define fail(EXPR) blob_appendf EXPR; goto end_footer
3680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- login_check_credentials();
3682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !g.perm.Write ){
3683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- login_needed(g.anon.Write);
3684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return;
3685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_begin_transaction();
3687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CheckinMiniInfo_init(&cimi);
3688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- submitMode = atoi(PD("submit","0"))
3689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Submit modes: 0=initial request,
3690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** 1=submit (save), 2=preview, 3=diff */;
3691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFlagCheck = P("comment_mimetype");
3692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(zFlagCheck){
3693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.zMimetype = mprintf("%s",zFlagCheck);
3694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFlagCheck = 0;
3695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.zUser = mprintf("%s",g.zLogin);
3697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_header("File Editor");
3699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* As of this point, don't use return or fossil_fatal(), use
3700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** fail((&err,...)) instead so that we can be sure to do any
3701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** cleanup and end the transaction cleanly.
3702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
3703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!zRev || !*zRev || !zFilename || !*zFilename){
3704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fail((&err,"Missing required URL parameters."));
3705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(0==fileedit_is_editable(zFilename)){
3707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fail((&err,"Filename <code>%h</code> is disallowed "
3708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "by the <code>fileedit-glob</code> repository "
3709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "setting.",
3710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFilename));
3711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- vid = symbolic_name_to_rid(zRev, "ci");
3713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(0==vid){
3714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fail((&err,"Could not resolve checkin version."));
3715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Find the repo-side file entry or fail... */
3718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.zParentUuid = rid_to_uuid(vid);
3719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_prepare(&stmt, "SELECT uuid, perm FROM files_of_checkin "
3720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "WHERE filename=%Q %s AND checkinID=%d",
3721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFilename, filename_collation(), vid);
3722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(SQLITE_ROW==db_step(&stmt)){
3723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char * zPerm = db_column_text(&stmt, 1);
3724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.filePerm = mfile_permstr_int(zPerm);
3725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(PERM_LNK==cimi.filePerm){
3726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fail((&err,"Editing symlinks is not permitted."));
3727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFileUuid = mprintf("%s",db_column_text(&stmt, 0));
3729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_finalize(&stmt);
3731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!zFileUuid){
3732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fail((&err,"Checkin [%S] does not contain file: "
3733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "<code>%h</code>",
3734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.zParentUuid, zFilename));
3735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- frid = fast_uuid_to_rid(zFileUuid);
3737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(frid);
3738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Read file content from submit request or repo... */
3740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(zContent==0){
3741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- content_get(frid, &cimi.fileContent);
3742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zContent = blob_size(&cimi.fileContent)
3743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ? blob_str(&cimi.fileContent) : NULL;
3744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
3745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_init(&cimi.fileContent,zContent,-1);
3746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(looks_like_binary(&cimi.fileContent)){
3748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fail((&err,"File appears to be binary. Cannot edit: "
3749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "<code>%h</code>",zFilename));
3750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* All set. Here we go... */
3753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<h1>Editing:</h1>");
3755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<p class='fileedit-hint'>");
3756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("File: <code>%h</code><br>"
3757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "Checkin Version: <code id='r-label'>%s</code><br>",
3758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFilename, cimi.zParentUuid);
3759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("Permalink: <code>"
3760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "<a id='permalink' href='%R/fileedit?file=%T&r=%!S'>"
3761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "/fileedit?file=%T&r=%!S</a></code><br>"
3762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "(Clicking the permalink will reload the page and discard "
3763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "all edits!)",
3764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFilename, cimi.zParentUuid,
3765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFilename, cimi.zParentUuid);
3766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("</p>");
3767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<p>This page is <em>far from complete</em> and may still have "
3768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "significant bugs. USE AT YOUR OWN RISK, preferably on a test "
3769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "repo.</p>\n");
3770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<form action='%R/fileedit' method='POST' "
3772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "class='fileedit-form'>\n");
3773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /******* Hidden fields *******/
3775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<input type='hidden' name='r' value='%s'>",
3776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.zParentUuid);
3777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<input type='hidden' name='file' value='%T'>",
3778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFilename);
3779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /******* Comment *******/
3781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<h3>Checkin Comment</h3>\n");
3782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<textarea name='comment' rows='3' cols='80'>");
3783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(zComment && *zComment){
3784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("%h"/*%h? %s?*/, zComment);
3785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("</textarea>\n");
3787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<div class='fileedit-hint'>Comments use the Fossil wiki markup "
3788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "syntax.</div>"/*TODO: radiobuttons for fossil/me/plain text*/);
3789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /******* Content *******/
3791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<h3>File Content</h3>\n");
3792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<textarea name='content' id='fileedit-content' "
3793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "rows='20' cols='80'>");
3794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("Loading...");
3795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("</textarea>\n");
3796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /******* Flags/options *******/
3797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<fieldset class='fileedit-options'>"
3798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "<legend>Options</legend><div>"
3799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Chrome does not sanely lay out multiple
3800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** fieldset children after the <legend>, so
3801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a containing div is necessary. */);
3802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
3803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** TODO?: date-override date selection field. Maybe use
3804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** an input[type=datetime-local].
3805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
3806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(0==submitMode || P("dry_run")!=0){
3807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags |= CIMINI_DRY_RUN;
3808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_labeled_checkbox("dry_run", "Dry-run?", "1",
3810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "In dry-run mode, the Save button performs "
3811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "all work needed for saving but then rolls "
3812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "back the transaction, and thus does not "
3813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "really save.",
3814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags & CIMINI_DRY_RUN);
3815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(P("allow_fork")!=0){
3816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags |= CIMINI_ALLOW_FORK;
3817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_labeled_checkbox("allow_fork", "Allow fork?", "1",
3819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "Allow saving to create a fork?",
3820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags & CIMINI_ALLOW_FORK);
3821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(P("allow_older")!=0){
3822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags |= CIMINI_ALLOW_OLDER;
3823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_labeled_checkbox("allow_older", "Allow older?", "1",
3825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "Allow saving against a parent version "
3826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "which has a newer timestamp?",
3827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags & CIMINI_ALLOW_OLDER);
3828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(P("exec_bit")!=0){
3829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.filePerm = PERM_EXE;
3830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_labeled_checkbox("exec_bit", "Executable?", "1",
3832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "Set the executable bit?",
3833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PERM_EXE==cimi.filePerm);
3834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(P("allow_merge_conflict")!=0){
3835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags |= CIMINI_ALLOW_MERGE_MARKER;
3836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_labeled_checkbox("allow_merge_conflict",
3838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "Allow merge conflict markers?", "1",
3839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "Allow saving even if the content contains "
3840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "what appear to be fossil merge conflict "
3841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "markers?",
3842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags & CIMINI_ALLOW_MERGE_MARKER);
3843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(P("prefer_delta")!=0){
3844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags |= CIMINI_PREFER_DELTA;
3845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_labeled_checkbox("prefer_delta",
3847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "Prefer delta manifest?", "1",
3848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "Will create a delta manifest, instead of "
3849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "baseline, if conditions are favorable to do "
3850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "so. This option is only a suggestion.",
3851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.flags & CIMINI_PREFER_DELTA);
3852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {/* EOL conversion policy... */
3853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const int eolMode = submitMode==0 ? 0 : atoi(PD("eol","0"));
3854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- switch(eolMode){
3855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 1: cimi.flags |= CIMINI_CONVERT_EOL_UNIX; break;
3856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 2: cimi.flags |= CIMINI_CONVERT_EOL_WINDOWS; break;
3857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- default: cimi.flags |= CIMINI_CONVERT_EOL_INHERIT; break;
3858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<select name='eol' "
3860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "title='EOL conversion policy, noting that form-processing "
3861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "may implicitly change the line endings of the input.'>");
3862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<option value='0'%s>Inherit EOLs</option>",
3863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (eolMode!=1 && eolMode!=2) ? " selected" : "");
3864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<option value='1'%s/>Unix EOLs</option>",
3865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- eolMode==1 ? " selected" : "");
3866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<option value='2'%s>Windows EOLs</option>",
3867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- eolMode==2 ? " selected" : "");
3868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("</select>");
3869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("</div></fieldset>") /* end of checkboxes */;
3872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /******* Buttons *******/
3874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<fieldset class='fileedit-options'>"
3875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "<legend>Tell the server to...</legend><div>");
3876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<button type='submit' name='submit' value='1'>"
3877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "Save</button>");
3878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<button type='submit' name='submit' value='2'>"
3879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "Preview (TODO)</button>");
3880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<button type='submit' name='submit' value='3'>"
3881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "Diff (TODO)</button>");
3882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("</div></fieldset>");
3883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /******* End of form *******/
3885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("</form>\n");
3886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {
3888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Populate the editor...
3889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** To avoid all escaping-related issues, we have to do this one of
3891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** two ways:
3892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** 1) Fetch the content via AJAX. That only works if the content
3894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is already in the db, but not for edited versions.
3895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
3896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** 2) Store the content as JSON and feed it into the textarea
3897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** using JavaScript.
3898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
3899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char const * zQuoted = 0;
3900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(blob_size(&cimi.fileContent)>0){
3901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_prepare(&stmt, "SELECT json_quote(%B)", &cimi.fileContent);
3902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_step(&stmt);
3903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zQuoted = db_column_text(&stmt,0);
3904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(&endScript,
3906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "/* populate editor form */\n"
3907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "document.getElementById('fileedit-content')"
3908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ".value=%s;", zQuoted ? zQuoted : "'';\n");
3909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(stmt.pStmt){
3910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_finalize(&stmt);
3911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(1==submitMode/*save*/){
3915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob manifest = empty_blob;
3916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char * zNewUuid = 0;
3917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*cimi.flags |= CIMINI_STRONGLY_PREFER_DELTA;*/
3918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(zComment && *zComment){
3919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_append(&cimi.comment, zComment, -1);
3920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
3921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fail((&err,"Empty comment is not permitted."));
3922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*cimi.pParent = manifest_get(vid, CFTYPE_MANIFEST, 0);
3924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(cimi.pParent && "We know vid is valid.");*/
3925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.zFilename = mprintf("%s",zFilename);
3926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.pMfOut = &manifest;
3927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- checkin_mini(&cimi, &newVid, &err);
3928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(newVid!=0){
3929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zNewUuid = rid_to_uuid(newVid);
3930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<h3>Manifest%s: %S</h3><pre>"
3931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "<code class='fileedit-manifest'>%h</code>"
3932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "</pre>",
3933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (cimi.flags & CIMINI_DRY_RUN) ? " (dry run)" : "",
3934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zNewUuid, blob_str(&manifest));
3935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!(CIMINI_DRY_RUN & cimi.flags)){
3936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* We need to update certain form fields and UI elements so
3937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** they're not left pointing to the previous version. While
3938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** we're at it, we'll re-enable dry-run mode for sanity's
3939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** sake.
3940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
3941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(&endScript,
3942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "/* Toggle dry-run back on */\n"
3943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "document.querySelector('input[type=checkbox]"
3944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "[name=dry_run]').checked=true;\n");
3945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(&endScript,
3946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "/* Update version number */\n"
3947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "document.querySelector('input[name=r]')"
3948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ".value=%Q;\n"
3949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "document.querySelector('#r-label')"
3950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ".innerText=%Q;\n",
3951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zNewUuid, zNewUuid);
3952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(&endScript,
3953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "/* Update permalink */\n"
3954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "const urlFull='%R/fileedit?file=%T&r=%!S';\n"
3955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "const urlShort='/fileedit?file=%T&r=%!S';\n"
3956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "let link=document.querySelector('#permalink');\n"
3957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "link.innerText=urlShort;\n"
3958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "link.setAttribute('href',urlFull);\n",
3959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFilename, zNewUuid, zFilename, zNewUuid);
3960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_free(zNewUuid);
3962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zNewUuid = 0;
3963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* On error, the error message is in the err blob and will
3965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** be emitted below. */
3966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cimi.pMfOut = 0;
3967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_reset(&manifest);
3968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if(2==submitMode/*preview*/){
3969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* TODO */
3970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fail((&err,"Preview mode is still TODO."));
3971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if(3==submitMode/*diff*/){
3972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fail((&err,"Diff mode is still TODO."));
3973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
3974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Ignore invalid submitMode value */
3975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto end_footer;
3976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
3978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- end_footer:
3979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zContent = 0;
3980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_free(zFileUuid);
3981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(stmt.pStmt){
3982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_finalize(&stmt);
3983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(blob_size(&err)){
3985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<div class='fileedit-error-report'>%s</div>",
3986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_str(&err));
3987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_reset(&err);
3989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CheckinMiniInfo_cleanup(&cimi);
3990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(blob_size(&endScript)>0){
3991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fileedit_emit_script(0);
3992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("(function(){\n");
3993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("try{\n%b\n}catch(e){console.error('Exception:',e)}\n",
3994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- &endScript);
3995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("})();");
3996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fileedit_emit_script(1);
3997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
3998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_end_transaction(0/*noting that dry-run mode will have already
3999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** set this to rollback mode. */);
4000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_footer();
4001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
4002 2699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
4003 2700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
A DDED src/fileedit.c