home | help
MVS(1)		       User Contributed Perl Documentation		  MVS(1)

NAME
     mvs - A command line Mediawiki client

SYNOPSIS
       mvs [Options] command [Options] [filename]

       mvs -h|--help
       mvs --version
       mvs -D

       mkdir wikistuff
       cd wikistuff

       mvs [-q|-v] login [-T] [-d <wikihost>] [-l language_code ] [-u <username>] [-p <password> ] [-w <wiki_path>]

       mvs [-q|-v] update [<file> ..]
       mvs [-q|-v] up [<file> ..]

       mvs [-q|-v] commit [-M] [-W] -m "commit message" <file>
       mvs [-q|-v] com [-M] [-W] -m "commit message" <file>
       mvs [-q|-v] preview [-M] [-W] [-m "commit message"] <file>

DESCRIPTION
     "mvs" is a command line client whose purpose is to simplify offline editing
     of Wiki content.  It allows you to get any number of pages from a given Me-
     diawiki site, edit the pages with any editor, get and merge any concurrent
     updates of the pages, and then safely commit the users own changes back to
     the version of the page on the server.

     The "mvs" commands which take a filename argument only accept a single
     filename as so to avoid taking up too much server bandwidth.

     Note:Users of "mvs" from before version 0.27 will notice that in this docu-
     mentation the options are mostly listed after the "mvs" sub-command.  This
     makes "mvs" behave more like "cvs", "svn", or "tla", and so should make it
     easier for people who are used to using those programs.  If you prefer to
     use "mvs" the old way, that will still work, at least for the next few ver-
     sions.

QUICKSTART
   Step 1:  Create an account on the Mediawiki server.
     This should be done the normal way, by visiting the Mediawiki website to
     which you want to contribute and creating a new account, setting the pref-
     erences, etc.

     It should hopefully go without saying that you will want to become familiar
     with the editorial, usage, and copyright guidelines of the site.  You
     should probably also make some contributions through the normal UI, and
     learn about following recent changes before contributing using mvs.

     In addition for the sake of this test you should already have a user page
     like User:<username> with something on it, where <username> is the user
     name with which you established the account.

   Step 2:  Create a working directory
     "mvs" works with Mediawiki formatted files with a ".wiki" extension and
     which are stored together with server information in a working directory.
     You will have to have at least one working directory for each Mediawiki
     site to which you contribute.

     Simply use "mkdir" or the equivalent to make a new directory, and then be-
     fore cd into that directory.

       mkdir wikitravel.en
       cd wikitravel.en

     All of the operations below should be done from this directory.

   Step 3:  Login using "mvs login"
     To use login you will need to know the hostname for the Mediawiki site to
     which you want to contribute.

       www.wikitravel.org

     Now use the host with your username and password to login.

       mvs login -d www.wikitravel.org -u <username> -p 'secret'

     If "mvs" knows about your Mediawiki host it will set set the "wiki_path" to
     the correct default for that server.  In this case it will also be able to
     select the language version of that Wiki for you if you specify a "lan-
     guage_code":

       mvs login -d www.wikitravel.org -l fr -u <username> -p 'secret'

     The code must match the one which your wiki host uses for a given language,
     and of course the language version must exist for the given host.

     If your Mediawiki install uses a nonstandard path to the wiki script you
     can specify it on login.  The path to the wiki script is the part of the
     URL after the host name, and before the '?':

       mvs login \
	 -d www.wikitravel.org \
	 -u <username> \
	 -p 'secret' \
	 -w 'mw/wiki.phtml'

     You can change the edit and action paths in the created .mediawiki file af-
     ter successful login accordingly.

     Now anything you submit to the Mediawiki server will be credited to user
     "<username>".

     NOTE: If you have been using an earlier version of "mvs" you should proba-
     bly delete the .mediawiki file in your working directory.

   Step 4:  Use "mvs update" to fetch one or more working files
     You can fetch existing material off of the site, or create new pages with
     "mvs update", remembering that your files will need a ".wiki" extension:

       mvs update User:<username>.wiki User:<username>/Test_Page.wiki

     This should produce the output:

       U User:<username>.wiki
       A User:<username>/Test_Page.wiki

     The U (for Updated) means that User:<username> was found on the server and
     its contents inserted into the local files.  The A (for Added) means that
     the User:<username>/Test_Page.wiki page does not yet exist on the server,
     and will be added when you run "mvs commit".

     Note that both of the pages we are working with are within your User Name-
     space.  It's probably a good idea to restrict yourself to working with such
     pages while you are experimenting with "mvs"

   Step 5:  Edit the files to make corrections and contributions
     Use your favorite text editor to edit the files.  You might want to check
     out this page to see if there is a Mediawiki syntax highlighting file for
     your editor:

       http://en.wikipedia.org/wiki/Wikipedia:Syntax_highlighting

     Of course if you don't find a highlighting file for you editor you are wel-
     come to create one and submit it to the page above.

   Step 6:  Use "mvs commit" to submit your changes
     When you are done editing a file and would like to submit your changes to
     the wiki server use "mvs commit" to do so:

       mvs commit -m 'commit message' User:<username>.wiki

     Where 'commit message' is whatever you want to say about the changes you
     are submitting and why.  You must provide a commit message or "mvs commit"
     will fail.  You might also find that "mvs commit" fails complaining that
     the file has changed on the server.  If this is the case you will need to
     use "mvs update" again to get the most recent changes.

   Step 7: Update your wiki files
     You can use "mvs update" again at any time to reconcile any of your files
     with the most recent changes from the server.  Your changes will not be
     overwritten, but rather "mvs" will try to merge any server changes into the
     files as they exist in your working directory.  Note that update and commit
     only work on one file at a time, as so to help prevent accidents and server
     congestion.

     If for some reason there is a conflict, i.e. you and someone else have made
     changes which appear to be incompatible, and cannot be resolved then your
     file will contain a conflict message, as detailed in the documentation for
     "mvs update" below.  You must resolve any conflicts before attempting to
     use "mvs commit" on the file.  This is usually a very simple matter of
     choosing one version of the change or another.  You should use your best
     judgement, consulting the relevant "Talk:" page to try to work out an
     agreement with the other contributor in cases where you just simply dis-
     agree.

   Repeat
     You can continue editing and committing changes with the files in your
     working directory.  It might be a good idea for you to eventually create
     multiple working directories per site, perhaps grouping them by subject.
     This will work fine with "mvs" since it does not need to have a complete
     copy of all of the pages from a given server in a given working directory
     to work.

CHARACTER ENCODING
     All of your ".wiki" files should be stored with UTF-8 encoding.  Upon login
     to a given server mvs will determine the encoding used by that server, and
     will upload in that encoding only.  For servers using non-UTF-8 character
     sets you should use HTML entities for any character you want to represent
     which is outside of the server's character set.  This includes the english
     Wikipedia.  Most newer Mediawiki sites however do use UTF-8, on these sites
     HTML entities are never needed.

ARGUMENTS
   Commands
     The first argument after the options should be one of the following two
     commands:

     mvs login
	 Allows the user to login to the Mediawiki server using an existing lo-
	 gin and password for that server.  After calling "login" all "commit"s
	 from the same working directory will be logged as from the logged-in
	 user.

     mvs update
	 Updates the specified file[s] with content from the Mediawiki server.
	 If a file does not exist it is created and populated with the current
	 online version.  If there is no online version, the file either created
	 and left blank, or just left as it is.  If there is content in both the
	 specified file and in the corresponding Wiki page, an attempt is made
	 to merge the two, line by line.  Files which are the same as the server
	 version are ignored.

	 If no filenames are given on the command line, all visible files with
	 the .wiki extension are processed.

	 Conflicting changes to a given line are detected on the basis of the
	 date of the most recent update of the local file and date of the most
	 recent change to the online Wiki page.  If a line has changed in both
	 the online page and the local file it is flagged as a conflict, as in
	 CVS, but with a slightly different syntax:

	   ********************Start of conflict 1  Insert to Primary, Insert to Secondary ************************************************************

	   The line as it appears on the server

	   ****************************************************************************************************

	   The line as it appears locally
	   ********************End of conflict 1********************************************************************************

	 "mvs update" reports the status of files which it touches to STDERR
	 with a letter indicating the file status, and then name of the file,
	 again like CVS.  The status letters are:

	 = (Unchanged)
	     The file is the same as the page on the server.

	 A (Added)
	     The file will become a new page on the wiki server.

	 M (Modified)
	     The file has been modified locally.

	 U (Updated)
	     The file has been updated with changes from the wiki server.

	 C (Conflicts)
	     The file contains conflict markers.

	 ? (Unknown)
	     Neither the file, nor a corresponding server page exist.

     commit
	 Commits any changes in the specified local file to the Wiki site.  A
	 check is made first to make sure that there are no changes on the
	 server more recent than the most recent update.  Nothing will be comit-
	 ted if the file and server version are identical.

	 When running "mvs commit" you must use the "-m" flag to send a commit
	 message to the Mediawiki server.  e.g.:

	   mvs commit -m 'Added Hotel Eldorado' Paris.wiki

     preview
	 This command functions identically to "mvs commit", except that nothing
	 is actually committed.  Instead, the file is uploaded and the Mediawiki
	 server sends back a formatted preview.  The "-m" flag is optional.  If
	 you set the MVS_BROWSER environmental variable to the path and filename
	 of your favorite browser, mvs will launch it with the preview page.

     clean
	 This command removes any local version reference files relating to
	 pages you've deleted.

	   rm Paris.wiki
	   mvs clean

   File names
     Any additional arguments are taken as local filenames to be processed.  The
     local filename of a given Mediawiki page will be the same as its URL en-
     coded name with the extension ".wiki".  If no arguments are given then any
     filenames with the "wiki" extension and under the current directory are
     processed.

OPTIONS
   -h
     Display usage information.

   -D
     Print information about known Mediawiki servers, then exit.

   -q
     Causes the command to be quiet.  Informational messages are suppressed.

   -u "<username>"
     Specifies a username for "mvs login".

   -p "<password>"
     Specifies a password for "mvs login".

   -l "<language_code>"
     The language code the wiki server uses to differentiate between language
     versions.

   -m "<your message>"
     A commit message for "mvs commit".  Use this to explain the nature of your
     changes.

   -s "<your message>"
     Same as "-m"

   --minor <yes|no|default>
     Choose whether to mark change as a minor edit.  The default is to mark
     changes as minor if the Mediawiki user profile is set to do so by default.
     Use this when committing a change with "mvs commit" or previewing with "mvs
     preview".

   -M
     Same as "--minor yes".

   --watch <yes|no|keep|default>
     Choose whether to add the edited page to your watchlist.  Specifying "keep"
     will maintain the current watched status.	The default is to watch the page
     if it is already being watched, or if the Mediawiki user profile is set to
     do so by default.	Use this when committing a change with "mvs commit" or
     previewing with "mvs preview".

   -W
     Same as "--watch yes".

   -w "<wiki path>"
     The path on the given "host" to the Mediawiki script.  This defaults to
     wiki/wiki.phtml which is correct for a vanilla install of Mediawiki 1.4.x.

   -v
     Verbose.  If this is set "mvs" will give you lots of extra information
     about what it's doing.  The -q flag overrides this.

ENVIRONMENTAL VARIABLES
   MVS_BROWSER
     The browser you prefer to use for previewing changes.

   HTTP_PROXY
     A proxy server to use (if any), expressed as a standard URL, something like
     this:

       export HTTP_PROXY=http://[username:password@]proxy.myorg.org:8080

CAVEATS
     This is an early version of this program.	Future versions may have major
     differences which will effect your ability to use them interchangeably with
     this one.	In particular the initial "command" arguments may become options
     and the handling of conflicts might change dramatically.

BUGS
     Please submit bug reports to the CPAN bug tracker at
     <http://rt.cpan.org/NoAuth/Bugs.html?Dist=WWW-Mediawiki-Client>.

DISCUSSION
     There is a discussion list.  You can subscribe or read the archives at:
     <http://www.geekhive.net/cgi-bin/mailman/listinfo/www-mediawiki-client-l>

SEE ALSO
   Mediawiki
     <http://www.wikimedia.org|Mediawiki>

   CVS
     http://www.cvs.org

AUTHORS
     Mark Jaroski <mark@geekhive.net>
     Bernhard Kaindl <bkaindl@ffii.org>
	 Improved error and usage messages.

     Oleg Alexandrov <aoleg@math.ucla.edu>, Thomas Widmann <twid@bibulus.org>
	 Bug reports and feedback.

     Adrian Irving-Beer <wisq@wisq.net>
	 Preview support, export support for multi-page update, more 'minor' and
	 'watch' settings, and bug reports.

COPYRIGHT
     A(C) Copyright 2004-2005, Mark Jaroski

     This program is free software; you can redistribute it and/or modify it un-
     der the same terms as Perl itself.

POD ERRORS
     Hey! The above document had some coding errors, which are explained below:

     Around line 517:
	 You forgot a '=back' before '=head2'

     Around line 633:
	 alternative text 'http://www.cvs.org' contains non-escaped | or /

     Around line 637:
	 '=item' outside of any '=over'

     Around line 652:
	 You forgot a '=back' before '=head1'

     Around line 654:
	 Non-ASCII character seen before =encoding in 'A(C)'. Assuming CP1252

perl v5.42.3			   2006-06-11				  MVS(1)

home | help