From hpk at codespeak.net Wed Nov 18 11:39:29 2009 From: hpk at codespeak.net (hpk at codespeak.net) Date: Wed, 18 Nov 2009 11:39:29 +0100 (CET) Subject: [vadm] r69363 - in vadm/dist/vadm: . test Message-ID: <20091118103929.7F2D231813D@codespeak.net> Author: hpk Date: Wed Nov 18 11:39:28 2009 New Revision: 69363 Added: vadm/dist/vadm/logger.py Modified: vadm/dist/vadm/__init__.py vadm/dist/vadm/cmdline.py vadm/dist/vadm/test/test_bootstrap.py Log: making vadm compatible to py-1.1 Modified: vadm/dist/vadm/__init__.py ============================================================================== --- vadm/dist/vadm/__init__.py (original) +++ vadm/dist/vadm/__init__.py Wed Nov 18 11:39:28 2009 @@ -4,30 +4,6 @@ freely versioning unix system files and directories including tracking of POSIX ownership and permission information. """ -from py import initpkg +__version__ = "0.6.1" -initpkg(__name__, - description = "tool for versioning system files and directories", - revision = '$LastChangedRevision: 11405 $', - lastchangedate = '$LastChangedDate: 2005-04-24 15:18:48 +0200 (Sun, 24 Apr 2005) $', - version = "0.6.x", - url = "http://codespeak.net/vadm", - #download_url = "http://codespeak.net/download/py/py-0.6.0-pre-alpha.tar.gz", - license = "GPL V3", - platforms = ['unix', 'linux'], - author = "holger krekel, merlinux GmbH", - author_email = "holger at merlinux.de", - long_description = globals()['__doc__'], - - exportdefs = { - 'cmdline.main' : ('./cmdline.py', 'main'), - 'sync.update_hostwc' : ('./sync.py', 'update_hostwc'), - 'sync.all_fs2wc' : ('./sync.py', 'all_fs2wc'), - 'sync.posix_fs2wc' : ('./sync.py', 'posix_fs2wc'), - 'sync.content_fs2wc' : ('./sync.py', 'content_fs2wc'), - 'sync.wc2fs' : ('./sync.py', 'wc2fs'), - 'sync.getposix' : ('./sync.py', 'getposix'), - 'sync.vadmpropname' : ('./sync.py', 'vadmpropname'), - 'sync2.FileServer': ('./sync2.py', 'FileServer'), - } -) +from vadm import sync, cmdline Modified: vadm/dist/vadm/cmdline.py ============================================================================== --- vadm/dist/vadm/cmdline.py (original) +++ vadm/dist/vadm/cmdline.py Wed Nov 18 11:39:28 2009 @@ -6,6 +6,7 @@ """ from __future__ import generators import py, vadm +from vadm import logger import os, sys from inspect import isclass @@ -20,7 +21,7 @@ hostwc = vadmdir / 'hostwc' self.hostwc = py.path.svnwc(hostwc) self.systemroot = py.path.local(systemroot) - self.log = py.log.get('vadm', + self.log = logger.get('vadm', debug=None, user=userconsumer, info=None, Added: vadm/dist/vadm/logger.py ============================================================================== --- (empty file) +++ vadm/dist/vadm/logger.py Wed Nov 18 11:39:28 2009 @@ -0,0 +1,71 @@ + +class Message(object): + def __init__(self, processor, *args): + self.content = args + self.processor = processor + self.keywords = (processor.logger._ident, + processor.name) + + def strcontent(self): + return " ".join(map(str, self.content)) + + def strprefix(self): + return '[%s] ' % ":".join(map(str, self.keywords)) + + def __str__(self): + return self.strprefix() + self.strcontent() + +class Processor(object): + def __init__(self, logger, name, consume): + self.logger = logger + self.name = name + self.consume = consume + + def __call__(self, *args): + try: + consume = self.logger._override + except AttributeError: + consume = self.consume + if consume is not None: + msg = Message(self, *args) + consume(msg) + +class Logger(object): + _key2logger = {} + + def __init__(self, ident): + self._ident = ident + self._key2logger[ident] = self + self._keywords = () + + def set_sub(self, **kwargs): + for name, value in kwargs.items(): + self._setsub(name, value) + + def ensure_sub(self, **kwargs): + for name, value in kwargs.items(): + if not hasattr(self, name): + self._setsub(name, value) + + def set_override(self, consumer): + self._override = lambda msg: consumer(msg) + + def del_override(self): + try: + del self._override + except AttributeError: + pass + + def _setsub(self, name, dest): + assert "_" not in name + setattr(self, name, Processor(self, name, dest)) + +def get(ident="global", **kwargs): + """ return the Logger with id 'ident', instantiating if appropriate """ + try: + log = Logger._key2logger[ident] + except KeyError: + log = Logger(ident) + log.ensure_sub(**kwargs) + return log + Modified: vadm/dist/vadm/test/test_bootstrap.py ============================================================================== --- vadm/dist/vadm/test/test_bootstrap.py (original) +++ vadm/dist/vadm/test/test_bootstrap.py Wed Nov 18 11:39:28 2009 @@ -1,7 +1,7 @@ # Copyright 2008 Holger Krekel import py -from vadm.__.cmdline import Session, CommandError +from vadm.cmdline import Session, CommandError class _TestLog(dict): def __init__(self, session): From hpk at codespeak.net Wed Nov 18 11:43:04 2009 From: hpk at codespeak.net (hpk at codespeak.net) Date: Wed, 18 Nov 2009 11:43:04 +0100 (CET) Subject: [vadm] r69364 - in vadm/dist: . testing vadm/test Message-ID: <20091118104304.665F531813D@codespeak.net> Author: hpk Date: Wed Nov 18 11:43:03 2009 New Revision: 69364 Added: vadm/dist/CHANGELOG.txt vadm/dist/testing/ - copied from r69363, vadm/dist/vadm/test/ Removed: vadm/dist/vadm/test/ Log: adding changelog, shifting tests out of source Added: vadm/dist/CHANGELOG.txt ============================================================================== --- (empty file) +++ vadm/dist/CHANGELOG.txt Wed Nov 18 11:43:03 2009 @@ -0,0 +1,5 @@ +0.6.1 +--------------- + +- make vadm work with py-1.1 release +- started a changelog From hpk at codespeak.net Thu Nov 26 16:33:07 2009 From: hpk at codespeak.net (hpk at codespeak.net) Date: Thu, 26 Nov 2009 16:33:07 +0100 (CET) Subject: [vadm] r69655 - in vadm/dist: . testing vadm Message-ID: <20091126153307.538881680C1@codespeak.net> Author: hpk Date: Thu Nov 26 16:33:06 2009 New Revision: 69655 Modified: vadm/dist/CHANGELOG.txt vadm/dist/MANIFEST.in vadm/dist/setup.py vadm/dist/testing/test_commands.py vadm/dist/vadm/__init__.py vadm/dist/vadm/cmdline.py vadm/dist/vadm/sync.py Log: fix numeric id handling, reported by Wouter, issue2 on gcode Modified: vadm/dist/CHANGELOG.txt ============================================================================== --- vadm/dist/CHANGELOG.txt (original) +++ vadm/dist/CHANGELOG.txt Thu Nov 26 16:33:06 2009 @@ -1,3 +1,9 @@ +0.6.2 +--------------- + +- fix adding/handling of files that have no symbolic owner/group id +- don't use py.compat namespace + 0.6.1 --------------- Modified: vadm/dist/MANIFEST.in ============================================================================== --- vadm/dist/MANIFEST.in (original) +++ vadm/dist/MANIFEST.in Thu Nov 26 16:33:06 2009 @@ -1,4 +1,5 @@ recursive-include vadm *.py *.txt include COPYING +include CHANGELOG.txt include README.txt exclude MANIFEST.in Modified: vadm/dist/setup.py ============================================================================== --- vadm/dist/setup.py (original) +++ vadm/dist/setup.py Thu Nov 26 16:33:06 2009 @@ -12,7 +12,7 @@ print PACKAGES setup(name = "vadm", - version = "0.6.x", + version = "0.6.2", description = "tool for versioning system files and directories", author = "holger krekel, merlinux GmbH", author_email = "holger at merlinux.de", Modified: vadm/dist/testing/test_commands.py ============================================================================== --- vadm/dist/testing/test_commands.py (original) +++ vadm/dist/testing/test_commands.py Thu Nov 26 16:33:06 2009 @@ -57,6 +57,22 @@ txt = self.testlog.poplog('warn') assert txt.find("path not versioned") + def test_addfile_numeric_owner(self, monkeypatch): + testpath = self.systemroot.ensure('pseudo-numeric') + monkeypatch.setattr(py.std.pwd, 'getpwuid', lambda x: {}[3]) + self.session.cmd('add', testpath) + assert not self.testlog.poplog('error') + txt = self.testlog.poplog('user') + assert txt.find("added") != -1 + + def test_addfile_numeric_group(self, monkeypatch): + testpath = self.systemroot.ensure('pseudo-numeric') + monkeypatch.setattr(py.std.grp, 'getgrgid', lambda x: {}[3]) + self.session.cmd('add', testpath) + assert not self.testlog.poplog('error') + txt = self.testlog.poplog('user') + assert txt.find("added") != -1 + def test_addfile_revert_diff_log_blame(self): testpath = self.systemroot.join('etc','passwd').ensure() self.session.cmd('add', testpath) Modified: vadm/dist/vadm/__init__.py ============================================================================== --- vadm/dist/vadm/__init__.py (original) +++ vadm/dist/vadm/__init__.py Thu Nov 26 16:33:06 2009 @@ -4,6 +4,6 @@ freely versioning unix system files and directories including tracking of POSIX ownership and permission information. """ -__version__ = "0.6.1" +__version__ = "0.6.2" from vadm import sync, cmdline Modified: vadm/dist/vadm/cmdline.py ============================================================================== --- vadm/dist/vadm/cmdline.py (original) +++ vadm/dist/vadm/cmdline.py Thu Nov 26 16:33:06 2009 @@ -9,6 +9,7 @@ from vadm import logger import os, sys from inspect import isclass +import optparse, textwrap def userconsumer(msg): """ print info for the interactive user. """ @@ -73,7 +74,7 @@ def getparser(self): """ return a parser object containing standard options. """ options = [] - parser = py.compat.optparse.OptionParser() + parser = optparse.OptionParser() parser.add_option("-v", "--verbose", action="count", dest="verbose", help="increase verbosity") #parser.add_option("-q", "--quiet", action="count", dest="quiet", @@ -102,7 +103,7 @@ if explanation: lines = [x.strip() for x in explanation.split('\n')] - l = py.compat.textwrap.wrap(" ".join(lines), 70, + l = textwrap.wrap(" ".join(lines), 70, initial_indent=" "*7, subsequent_indent=" "*7) l.insert(0, '') Modified: vadm/dist/vadm/sync.py ============================================================================== --- vadm/dist/vadm/sync.py (original) +++ vadm/dist/vadm/sync.py Thu Nov 26 16:33:06 2009 @@ -28,7 +28,11 @@ localpath = py.path.local(localpath) l = [] stat = localpath.stat() - l.extend([stat.owner, stat.group, oct(stat.mode)]) + try: owner = stat.owner + except KeyError: owner = str(stat.uid) + try: group = stat.group + except KeyError: group = str(stat.gid) + l.extend([owner, group, oct(stat.mode)]) value = " ".join(l) return value From hpk at codespeak.net Thu Nov 26 17:02:09 2009 From: hpk at codespeak.net (hpk at codespeak.net) Date: Thu, 26 Nov 2009 17:02:09 +0100 (CET) Subject: [vadm] r69659 - in vadm/dist: doc doc/_static doc/_templates vadm/doc Message-ID: <20091126160209.1C8671680AF@codespeak.net> Author: hpk Date: Thu Nov 26 17:02:09 2009 New Revision: 69659 Added: vadm/dist/doc/ (props changed) vadm/dist/doc/Makefile vadm/dist/doc/_static/ vadm/dist/doc/_templates/ vadm/dist/doc/conf.py vadm/dist/doc/contact.txt vadm/dist/doc/gettingstarted.txt vadm/dist/doc/index.txt vadm/dist/doc/install.txt Removed: vadm/dist/vadm/doc/ Log: create sphinx-based docs Added: vadm/dist/doc/Makefile ============================================================================== --- (empty file) +++ vadm/dist/doc/Makefile Thu Nov 26 17:02:09 2009 @@ -0,0 +1,93 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = _build + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest + +install: html + @echo "Build finished. rsyncing to codespeak" + rsync -avz _build/html code:www-vadm/ + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/vadm.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/vadm.qhc" + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ + "run these through (pdf)latex." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." Added: vadm/dist/doc/conf.py ============================================================================== --- (empty file) +++ vadm/dist/doc/conf.py Thu Nov 26 17:02:09 2009 @@ -0,0 +1,198 @@ +# -*- coding: utf-8 -*- +# +# vadm documentation build configuration file, created by +# sphinx-quickstart on Thu Nov 26 16:35:33 2009. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.append(os.path.abspath('.')) + +# -- General configuration ----------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = ['sphinx.ext.intersphinx'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.txt' + +# The encoding of source files. +#source_encoding = 'utf-8' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'vadm' +copyright = u'2009, holger krekel' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '0.6' +# The full version, including alpha/beta/rc tags. +release = '0.6.2' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of documents that shouldn't be included in the build. +#unused_docs = [] + +# List of directories, relative to source directory, that shouldn't be searched +# for source files. +exclude_trees = ['_build'] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. Major themes that come with +# Sphinx are currently 'default' and 'sphinxdoc'. +html_theme = 'default' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = "" + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_use_modindex = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = '' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'vadmdoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('install', 'vadm.tex', u'vadm Documentation', + u'holger krekel', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_use_modindex = True + + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = {'http://docs.python.org/': None} Added: vadm/dist/doc/contact.txt ============================================================================== --- (empty file) +++ vadm/dist/doc/contact.txt Thu Nov 26 17:02:09 2009 @@ -0,0 +1,15 @@ + +Contact, Development, Help +------------------------------ + +* `google code vadm tracker`_ + +* `vadm mailinglist`_ (requires subscription) for general + questions + +* You may also drop by the #codespeak channel on irc.freenode.org. + +* If all else fails you may contact holger.krekel at google com. + +.. _`google code vadm tracker`: http://code.google.com/p/vadm/issues/list +.. _`vadm mailinglist`: http://codespeak.net/mailman/listinfo/vadm Added: vadm/dist/doc/gettingstarted.txt ============================================================================== --- (empty file) +++ vadm/dist/doc/gettingstarted.txt Thu Nov 26 17:02:09 2009 @@ -0,0 +1,89 @@ +Getting Started +--------------------- + +.. _install: install.html + +Install via ``easy_install vadm`` or look at install_. + +You first need to create a repository for storing +information about your system files:: + + vadm create /path/to/my/sysrepo + +Afterwards you can checkout from the newly created +repository:: + + vadm checkout file:///path/to/my/sysrepo + +Note that there is no explicit working copy. In fact +it will be ``vadm`` which manages that working copy and +you can type:: + + vadm info + +to see your current internal REPO/WC-configuration. +Multiple users can checkout from the same repository. Each +of the users will have its own internal "working copy". + +For adding, committing, reverting or inquiring of files +and directories you may now use svn-like commands, including +their abbreviations. For example:: + + vadm add /etc/passwd # add this file to version-control + vadm commit -m "passwords" /etc + + vadm log /etc/passwd # show list of commits to this file + + vadm status / # show status of versioned files + vadm st # show status of current dir + vadm help # lists all available commands + +Because **vadm** uses subversion under the hood you can +install commit notification and other hooks in your repository. + +.. Note:: + + ``vadm`` needs to execute as a non-root user that + has the right to execute ``sudo``. + + +Some background and hints +--------------------------------------------------- + +Here are some background notes and hints: + +- if you want to auto-commit nightly you + may create a crontab entry like this:: + + 59 23 * * * /usr/bin/vadm ci -m "autocommit" / >/dev/null + +- You can transfer your local repository to a remote location + and then do a ``vadm checkout`` using an https or svn+ssh scheme. + +- **vadm** works by mapping all versioned files + into a per-user working copy. Permissions + and ownership information are kept in + ``vadm:posix`` svn properties. The + Working copy is usually kept under + ``$USER/.vadm/hostwc``. You may cd there + and use ``svn`` for introspection directly. + +- When you issue ``vadm add dir/somefile`` **vadm** + creates and adds a directory ``dir`` to the WC, + copies the `somefile` to the WC and schedules + it for addition. + +- For almost any command, vadm will internally + first update the working copy files from the corresponding + filesystem information. This imposes a startup overhead + which is usually not noticeable on modern systems if you + only deal with text configuration files. + +- You can always remove the Working Copy in + ``$USER/.vadm`` and/or directly perform ``vadm checkout URL`` + which will always remove the working copy before + re-creating it. **vadm** can re-create all its information from the + repository and the life filesystem. However, + any information that only exists in the working + copy (like files scheduled for addition or removal) + will be lost. Added: vadm/dist/doc/index.txt ============================================================================== --- (empty file) +++ vadm/dist/doc/index.txt Thu Nov 26 17:02:09 2009 @@ -0,0 +1,24 @@ + +Welcome to vadm! +---------------------- + +**vadm** is a simple svn-like command line tool for +versioning unix system files, ownership and permission +information. It uses subversion_ under the hood and maps +all files that you decide to version into a single +per-user repository. As a single adminstrator you can +decide to selectively and non-intrusively version some +files through your own home directory. + +vadm is released under the terms of the GPL Version 2 +or later and was written by Holger Krekel with initial +contributions from Jens-Uwe Mager. + +.. toctree:: + :maxdepth: 1 + + gettingstarted + install + contact + +.. _subversion: http://subversion.tigris.org Added: vadm/dist/doc/install.txt ============================================================================== --- (empty file) +++ vadm/dist/doc/install.txt Thu Nov 26 17:02:09 2009 @@ -0,0 +1,53 @@ + +Installing VADM +=================================================== + +.. contents:: + :local: + :depth: 2 + + +Installing VADM +----------------- + +**vadm** depends on the `py lib`_ which provides programmatic access to subversion +by using the 'svn' command line tool. The **vadm** scripts also will make use +of the **sudo** command which usually is available on Unix and OSX systems. + +.. _`py lib`: http://pylib.org + +with easy_install ++++++++++++++++++++ + +1. `Install easy_install`_ if you don't have it. On linux distributions the package name you should look for is "setuptools" or "python-setuptools". +2. type ``easy_install vadm`` (this also installs the py lib dependency). + +.. _`Install easy_install`: http://peak.telecommunity.com/DevCenter/EasyInstall#installing-easy-install + +manually with setup.py +++++++++++++++++++++++++ + +.. _`install the py lib without setuptools`: http://pylib.org/download.html#no-setuptools + +1. `install the py lib without setuptools`_. + +2. download the `vadm tarball`_ and install it like this (substitute + the version number as appropriate):: + + tar zxvf vadm-X.Y.Z.tar.gz + cd vadm-X.Y.Z + python setup.py install + +working from development +++++++++++++++++++++++++++++ + +If you want to follow the development version you can type +something like this:: + + svn co https://codespeak.net/svn/vadm/dist/vadm + +and add the ``vadm/bin/`` directory to your ``$PATH`` variable. +The **vadm** script will automatically use the development version. + + +.. _`vadm tarball`: http://pypi.python.org/packages/source/v/vadm/vadm-0.6.0-beta5.tar.gz From vadm at googlecode.com Thu Nov 26 17:12:30 2009 From: vadm at googlecode.com (vadm at googlecode.com) Date: Thu, 26 Nov 2009 16:12:30 +0000 Subject: [vadm] Issue 2 in vadm: "vadm add" fails on files with numeric group-ids In-Reply-To: <1-5713915690563136699-7547392621082070873-vadm=googlecode.com@googlecode.com> References: <1-5713915690563136699-7547392621082070873-vadm=googlecode.com@googlecode.com> <0-5713915690563136699-7547392621082070873-vadm=googlecode.com@googlecode.com> Message-ID: <2-5713915690563136699-7547392621082070873-vadm=googlecode.com@googlecode.com> Updates: Status: Fixed Comment #2 on issue 2 by holger.krekel: "vadm add" fails on files with numeric group-ids http://code.google.com/p/vadm/issues/detail?id=2 hi wouter. i just released vadm-0.6.2 to PyPI which should fix your issue. Can you verify and try to mark this issue as "done" (i now added you as a contributor and gave you that right ... maybe it works now :) cheers, holger -- You received this message because you are listed in the owner or CC fields of this issue, or because you starred this issue. You may adjust your issue notification preferences at: http://code.google.com/hosting/settings From holger at merlinux.eu Thu Nov 26 17:27:50 2009 From: holger at merlinux.eu (holger krekel) Date: Thu, 26 Nov 2009 17:27:50 +0100 Subject: [vadm] vadm-0.6.2 released Message-ID: <20091126162750.GL29390@trillke.net> Hi all, i just released a vadm-0.6.2 which fixes the issue of handling owner/groups id which have no symbolic mapping. also installed sphinx-based docs on http://codespeak.net/vadm A general note: If anyone is up for helping to spread the word, improve the docs or code, you are most welcome. Just post here, or request commit access etc. cheers, holger From hpk at codespeak.net Thu Nov 26 19:11:29 2009 From: hpk at codespeak.net (hpk at codespeak.net) Date: Thu, 26 Nov 2009 19:11:29 +0100 (CET) Subject: [vadm] r69664 - vadm/dist/doc Message-ID: <20091126181129.C74F31680AF@codespeak.net> Author: hpk Date: Thu Nov 26 19:11:29 2009 New Revision: 69664 Modified: vadm/dist/doc/gettingstarted.txt Log: for now, it's actually "vadm config" but i think it should become "vadm info" as this is what an svn user would type. Modified: vadm/dist/doc/gettingstarted.txt ============================================================================== --- vadm/dist/doc/gettingstarted.txt (original) +++ vadm/dist/doc/gettingstarted.txt Thu Nov 26 19:11:29 2009 @@ -19,7 +19,7 @@ it will be ``vadm`` which manages that working copy and you can type:: - vadm info + vadm config to see your current internal REPO/WC-configuration. Multiple users can checkout from the same repository. Each