Fossil

Check-in [5cb3e094]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Clarity, formatting, and grammar edit pass on the new www/mirrortogithub.md document.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256:5cb3e09464866829b8c54ef9a8882d9615c5d93759e09342128de926533724f4
User & Date: wyoung 2019-03-17 04:21:20
Context
2019-03-17
05:05
Added information on 2FA to the new mirroringtogithub.md doc check-in: a2ef4310 user: wyoung tags: trunk
04:21
Clarity, formatting, and grammar edit pass on the new www/mirrortogithub.md document. check-in: 5cb3e094 user: wyoung tags: trunk
03:50
Only showing the file name extension to MIME type map page on the sitemap if the accessing user has an ability to check in named files. I can't see how anyone else would care what that table contains. check-in: 71d66284 user: wyoung tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to www/mirrortogithub.md.

1
2
3
4
5
6
7
8
9
10
..
17
18
19
20
21
22
23

24
25
26
27
28
29

30

31
32
33
34
35
36
37
38
39

40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66


67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# How To Mirror A Fossil Repository On GitHub

Beginning with Fossil version 2.9, can mirror a Fossil-based
project on GitHub by following these steps:

<ol>
<li><p>Create an account on GitHub if you do not have one already.  Log
    into that account.

<li><p>Create a new project.  GitHub will ask you if you want to prepopulate
................................................................................
https://github.com/username/project.git
</blockquote>

<li><p>Back on your workstation, move to a checkout for your project and
    type:

<blockquote>

fossil git export GITREPO --autopush https://<font color="orange">username</font>:<font color="red">password</font>@github.com/username/project.git
</blockquote>

<p>   In place of GITREPO above, put in some directory name that is not
      part of your source tree.  The directory need not exist - Fossil will
      create it if necessary.  This GITREPO directory will become a Git

      repository that holds a translation of your Fossil repository.


<p>   The --autopush option tells Fossil that you want to push the Git
      translation up to GitHub every time it is updated.
      Note that you will need to augment the URL supplied by GitHub
      to insert your account <font color="orange">username</font>
      and <font color="red">password</font>.

<p>   You can also run the command above outside of any open checkout
      of your project by supplying the "-R repository" option.


<li><p>Get some coffee.  Depending on the size of your project, the
       command above can run for several minutes.

<li><p>And you are done!  Assuming everything worked, your project is now
    mirrored on GitHub.

<li><p>Whenever you update your project, simply run this command to update
    the mirror:

<blockquote>
fossil git export
</blockquote>


<p>   When updating your project, you do not need to reenter the GITREPO
      or the --autopush.  Fossil remembers those things.  The initial
      mirroring operation probably took several minutes (or tens of minutes)
      but a typical update will happen in a second or less.
</ol>

## Notes:

  *  The mirroring is one-way.  If you check in changes on GitHub, those
     changes will not be reabsorbed by Fossil.  There are technical problems
     that make a two-way mirror all but impossible.



  *  The "fossil git export" command creates subprocesses that run "git"
     commands.  So you must have Git installed on your machine for any
     of this to work.

  *  The Git repository will have an extra unmanaged top-level directory named
     "`.mirror_state`" that contains one or more files.  Those files are
     used to store the intermediate state of the translation so that
     subsequent invocations of "fossil git export" will know where you
     left of last time and what new content needs to be moved over into
     Git.  Be careful not to mess with the `.mirror_state` directory or
     any of its contents.  Do not manages those files.  Do not edit or
     delete them.

  *  Only check-ins and simple tags are translated to Git.  Git does not
     support wiki or tickets or unversioned content or any of the other
     features of Fossil that make it so convenient to use, so those other
     elements cannot be mirrored in Git.

  *  In Git, all tags must be unique.  If your Fossil repository has the
     same tag on two or more check-ins, the tag will only be preserved on
     the chronologically newest check-in.

## Example GitHub Mirrors

As of this writing (2019-03-16) the Fossil self-repository is mirrored
on GitHub at:

>
<https://github.com/drhsqlite/fossil-mirror>

In addition, an experimental SQLite mirror is available:



|







 







>
|


<
|
|
>
|
>

|
|
|
|
|

|
|
>











|



|
|
|
<








>
>
|
|





|
|

|
|












|







1
2
3
4
5
6
7
8
9
10
..
17
18
19
20
21
22
23
24
25
26
27

28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# How To Mirror A Fossil Repository On GitHub

Beginning with Fossil version 2.9, you can mirror a Fossil-based
project on GitHub by following these steps:

<ol>
<li><p>Create an account on GitHub if you do not have one already.  Log
    into that account.

<li><p>Create a new project.  GitHub will ask you if you want to prepopulate
................................................................................
https://github.com/username/project.git
</blockquote>

<li><p>Back on your workstation, move to a checkout for your project and
    type:

<blockquote>
<pre>$ fossil git export /path/to/git/repo --autopush \
  https://<font color="orange">username</font>:<font color="red">password</font>@github.com/username/project.git</pre>
</blockquote>


<p>   In place of the <code>/path/to...</code> argument above, put in some
      directory name that is <i>outside</i> of your Fossil checkout.  Fossil
      will create this directory if necessary.  This directory will
      become a Git repository that holds a translation of your Fossil
      repository.

<p>   The <code>--autopush</code> option tells Fossil that you want to
      push the Git translation up to GitHub every time it is updated.  Note
      that you will need to augment the URL supplied by GitHub to insert
      your account <font color="orange">username</font> and <font
      color="red">password</font>.

<p>   You can also run the command above outside of any open checkout of
      your project by supplying the “<code>-R&nbsp;repository</code>”
      option.

<li><p>Get some coffee.  Depending on the size of your project, the
       command above can run for several minutes.

<li><p>And you are done!  Assuming everything worked, your project is now
    mirrored on GitHub.

<li><p>Whenever you update your project, simply run this command to update
    the mirror:

<blockquote>
<pre>$ fossil git export</pre>
</blockquote>


<p>   Unlike with the first time you ran that command, you don’t need
      the remaining arguments, because Fossil remembers those things.
      Subsequent mirror updates should happen in a second or less.

</ol>

## Notes:

  *  The mirroring is one-way.  If you check in changes on GitHub, those
     changes will not be reabsorbed by Fossil.  There are technical problems
     that make a two-way mirror all but impossible.

     This also means that you cannot accept pull requests on GitHub.

  *  The "`fossil git export`" command creates subprocesses that run "`git`"
     commands, so you must have Git installed on your machine for any
     of this to work.

  *  The Git repository will have an extra unmanaged top-level directory named
     "`.mirror_state`" that contains one or more files.  Those files are
     used to store the intermediate state of the translation so that
     subsequent invocations of "`fossil git export`" will know where you
     left off the last time and what new content needs to be moved over into
     Git.  Be careful not to mess with the `.mirror_state` directory or
     any of its contents.  Do not put those files under Git management.  Do
     not edit or delete them.

  *  Only check-ins and simple tags are translated to Git.  Git does not
     support wiki or tickets or unversioned content or any of the other
     features of Fossil that make it so convenient to use, so those other
     elements cannot be mirrored in Git.

  *  In Git, all tags must be unique.  If your Fossil repository has the
     same tag on two or more check-ins, the tag will only be preserved on
     the chronologically newest check-in.

## Example GitHub Mirrors

As of this writing (2019-03-16) Fossil’s own repository is mirrored
on GitHub at:

>
<https://github.com/drhsqlite/fossil-mirror>

In addition, an experimental SQLite mirror is available: