<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.comfac.net/index.php?action=history&amp;feed=atom&amp;title=Git-Mediawiki_Local_Editing_260223</id>
	<title>Git-Mediawiki Local Editing 260223 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.comfac.net/index.php?action=history&amp;feed=atom&amp;title=Git-Mediawiki_Local_Editing_260223"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Git-Mediawiki_Local_Editing_260223&amp;action=history"/>
	<updated>2026-06-05T09:49:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://mediawiki.comfac.net/index.php?title=Git-Mediawiki_Local_Editing_260223&amp;diff=132&amp;oldid=prev</id>
		<title>Justinaquino: Imported from gi7b wiki</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Git-Mediawiki_Local_Editing_260223&amp;diff=132&amp;oldid=prev"/>
		<updated>2026-03-06T10:07:41Z</updated>

		<summary type="html">&lt;p&gt;Imported from gi7b wiki&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Git-Mediawiki: Local Editing with Opencode =&lt;br /&gt;
&lt;br /&gt;
A guide to using Git-Mediawiki to clone a MediaWiki as a Git repository, enabling offline editing with opencode and syncing changes back to the wiki.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Git-Mediawiki/Git-Mediawiki Git-Mediawiki] bridges Git and MediaWiki, allowing you to:&lt;br /&gt;
&lt;br /&gt;
* Clone a MediaWiki as a Git repository&lt;br /&gt;
* Edit pages locally with any text editor&lt;br /&gt;
* Track changes with Git version control&lt;br /&gt;
* Sync back to the wiki with git push/pull&lt;br /&gt;
&lt;br /&gt;
This enables opencode (which cannot use MediaWiki API/bots) to edit wiki content through local files.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* Git 1.8.3+&lt;br /&gt;
* Perl 5 with modules:&lt;br /&gt;
** MediaWiki::API (0.39+)&lt;br /&gt;
** DateTime::Format::ISO8601&lt;br /&gt;
** LWP::Protocol::https (for HTTPS)&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Debian/Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libmediawiki-api-perl libdatetime-format-iso8601-perl liblwp-protocol-https-perl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install Git-Mediawiki ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /path/to/projects&lt;br /&gt;
git clone https://github.com/Git-Mediawiki/Git-Mediawiki.git&lt;br /&gt;
sudo cp Git-Mediawiki/git-remote-mediawiki /usr/lib/git-core/&lt;br /&gt;
sudo cp Git-Mediawiki/git-mw /usr/lib/git-core/&lt;br /&gt;
sudo chmod +x /usr/lib/git-core/git-remote-mediawiki /usr/lib/git-core/git-mw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure Environment ===&lt;br /&gt;
&lt;br /&gt;
Add to ~/.bashrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PERL5LIB=/path/to/Git-Mediawiki:$PERL5LIB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then: source ~/.bashrc&lt;br /&gt;
&lt;br /&gt;
== Cloning the Wiki ==&lt;br /&gt;
&lt;br /&gt;
=== Basic Clone ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone mediawiki::https://wiki.gi7b.org/ wiki-gi7b-org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== With Authentication ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir wiki-gi7b-org &amp;amp;&amp;amp; cd wiki-gi7b-org&lt;br /&gt;
chmod 600 .git/config&lt;br /&gt;
git init&lt;br /&gt;
git remote add origin mediawiki::https://wiki.gi7b.org/&lt;br /&gt;
git config remote.origin.mwLogin &amp;#039;YourUsername&amp;#039;&lt;br /&gt;
git config remote.origin.mwPassword &amp;#039;YourPassword&amp;#039;&lt;br /&gt;
git pull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Partial Clone ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Specific pages&lt;br /&gt;
git clone -c remote.origin.pages=&amp;#039;Page_One Page_Two&amp;#039; mediawiki::https://wiki.gi7b.org/&lt;br /&gt;
&lt;br /&gt;
# By category&lt;br /&gt;
git clone -c remote.origin.categories=&amp;#039;Documentation&amp;#039; mediawiki::https://wiki.gi7b.org/&lt;br /&gt;
&lt;br /&gt;
# Latest revision only (faster)&lt;br /&gt;
git clone -c remote.origin.shallow=true mediawiki::https://wiki.gi7b.org/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Daily Workflow ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Pull Latest Changes ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd wiki-gi7b-org&lt;br /&gt;
export PERL5LIB=/path/to/Git-Mediawiki:$PERL5LIB&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Edit Pages ===&lt;br /&gt;
&lt;br /&gt;
Edit .mw files with opencode or any editor:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opencode Open_Source.mw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Review Changes ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git status&lt;br /&gt;
git diff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Commit ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add .&lt;br /&gt;
git commit -m &amp;quot;Updated page description&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Push to Wiki ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git push&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Rebase ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Repository Structure ==&lt;br /&gt;
&lt;br /&gt;
Each .mw file represents a wiki page:&lt;br /&gt;
&lt;br /&gt;
* File names = wiki titles (spaces become underscores)&lt;br /&gt;
* Format = MediaWiki markup&lt;br /&gt;
* Full history available via git log&lt;br /&gt;
&lt;br /&gt;
== Advanced Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Fetch Strategy ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# For active wikis with few tracked pages (default)&lt;br /&gt;
git config remote.origin.fetchStrategy by_page&lt;br /&gt;
&lt;br /&gt;
# For wikis with many pages but low activity&lt;br /&gt;
git config remote.origin.fetchStrategy by_rev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Media Files ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config --bool remote.origin.mediaimport true&lt;br /&gt;
git config --bool remote.origin.mediaexport true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dumb Push Mode ===&lt;br /&gt;
&lt;br /&gt;
For consistent commit hashes across clones:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git config mediawiki.dumbPush true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== SSL Certificate Issues ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Insecure (testing only)&lt;br /&gt;
PERL_LWP_SSL_VERIFY_HOSTNAME=0 git pull&lt;br /&gt;
&lt;br /&gt;
# Secure (download cert)&lt;br /&gt;
echo | openssl s_client -showcerts -connect wiki.gi7b.org:443 &amp;gt; certs.pem&lt;br /&gt;
HTTPS_CA_FILE=certs.pem git pull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Missing PERL5LIB ===&lt;br /&gt;
&lt;br /&gt;
If you see &amp;quot;Can&amp;#039;t locate Git/Mediawiki.pm&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PERL5LIB=/path/to/Git-Mediawiki:$PERL5LIB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tips for Opencode Workflow ==&lt;br /&gt;
&lt;br /&gt;
* Always pull before starting edits&lt;br /&gt;
* Make commits atomic (one logical change per commit)&lt;br /&gt;
* Use descriptive commit messages (become wiki edit summaries)&lt;br /&gt;
* Push frequently to avoid conflicts&lt;br /&gt;
* Keep PERL5LIB exported in your shell&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Git-Mediawiki/Git-Mediawiki Git-Mediawiki on GitHub]&lt;br /&gt;
* [[MediaWiki Setup Guide Portainer-Docker-251215-00]]&lt;br /&gt;
* [[GitHub Re-Connection &amp;amp; Workflow 260202]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Git-Mediawiki User Manual: https://github.com/Git-Mediawiki/Git-Mediawiki/blob/master/docs/User-manual.md&lt;br /&gt;
* MediaWiki API: https://www.mediawiki.org/wiki/API:Main_page&lt;/div&gt;</summary>
		<author><name>Justinaquino</name></author>
	</entry>
</feed>