spelling: trivial spell checking
authorMads Kiilerich <madski@unity3d.com>
Sat, 17 Oct 2015 00:58:46 +0200
changeset 27969 1aee2ab0f90293010b78f05c3daf2697866b1f30
parent 27968 bbf544b5f2e99eff3a787f9212b4920d447ac9ce
child 27970 cbd04ce641b943ee40b2355b81fc910a7c7a4a88
push id48
push usergszorc@mozilla.com
push dateWed, 04 Nov 2015 20:44:50 +0000
spelling: trivial spell checking
--- a/contrib/import-checker.py
+++ b/contrib/import-checker.py
@@ -60,17 +60,17 @@ def fromlocalfunc(modulename, localmods)
     `modulename` is an `dotted_name_of_path()`-ed source file path,
     which may have `.__init__` at the end of it, of the target source.
     `localmods` is a dict (or set), of which key is an absolute
     `dotted_name_of_path()`-ed source file path of locally defined (=
     Mercurial specific) modules.
     This function assumes that module names not existing in
-    `localmods` are ones of Python standard libarary.
+    `localmods` are from the Python standard library.
     This function returns the function, which takes `name` argument,
     and returns `(absname, dottedpath, hassubmod)` tuple if `name`
     matches against locally defined module. Otherwise, it returns
     It is assumed that `name` doesn't have `.__init__`.
--- a/contrib/revsetbenchmarks.py
+++ b/contrib/revsetbenchmarks.py
@@ -56,17 +56,17 @@ def hg(cmd, repo=None):
 def perf(revset, target=None):
     """run benchmark for this very revset"""
         output = hg(['perfrevset', revset], repo=target)
         return parseoutput(output)
     except CalledProcessError as exc:
         print >> sys.stderr, 'abort: cannot run revset benchmark: %s' % exc.cmd
         if exc.output is None:
-            print >> sys.stderr, '(no ouput)'
+            print >> sys.stderr, '(no output)'
             print >> sys.stderr, exc.output
         return None
 outputre = re.compile(r'! wall (\d+.\d+) comb (\d+.\d+) user (\d+.\d+) '
                       'sys (\d+.\d+) \(best of (\d+)\)')
 def parseoutput(output):
@@ -109,17 +109,17 @@ def idxwidth(nbidx):
         nbidx //= 10
     if not idxwidth:
         idxwidth = 1
     return idxwidth
 def getfactor(main, other, field, sensitivity=0.05):
     """return the relative factor between values for 'field' in main and other
-    Return None if the factor is insignicant (less than <sensitivity>
+    Return None if the factor is insignificant (less than <sensitivity>
     factor = 1
     if main is not None:
         factor = other[field] / main[field]
     low, high = 1 - sensitivity, 1 + sensitivity
     if (low < factor < high):
         return None
     return factor
@@ -213,17 +213,17 @@ def applyvariants(revset, variant):
     if variant == 'plain':
         return revset
     for var in variant.split('+'):
         revset = '%s(%s)' % (var, revset)
     return revset
 helptext="""This script will run multiple variants of provided revsets using
 different revisions in your mercurial repository. After the benchmark are run
-summary output is provided. Use itto demonstrate speed improvements or pin
+summary output is provided. Use it to demonstrate speed improvements or pin
 point regressions. Revsets to run are specified in a file (or from stdin), one
 revsets per line. Line starting with '#' will be ignored, allowing insertion of
 parser = OptionParser(usage="usage: %prog [options] <revs>",
 parser.add_option("-f", "--file",
                   help="read revset from FILE (stdin if omitted)",
--- a/doc/hgmanpage.py
+++ b/doc/hgmanpage.py
@@ -422,17 +422,17 @@ class Translator(nodes.NodeVisitor):
     def visit_authors(self, node):
         # _author is called anyway.
     def depart_authors(self, node):
     def visit_block_quote(self, node):
-        # BUG/HACK: indent always uses the _last_ indention,
+        # BUG/HACK: indent always uses the _last_ indentation,
         # thus we need two of them.
     def depart_block_quote(self, node):
--- a/hgeditor
+++ b/hgeditor
@@ -1,12 +1,12 @@
 # This is an example of using HGEDITOR to create of diff to review the
-# changes while commiting.
+# changes while committing.
 # If you want to pass your favourite editor some other parameters
 # only for Mercurial, modify this:
 case "${EDITOR}" in
--- a/hgext/censor.py
+++ b/hgext/censor.py
@@ -8,17 +8,17 @@
 The censor command instructs Mercurial to erase all content of a file at a given
 revision *without updating the changeset hash.* This allows existing history to
 remain valid while preventing future clones/pulls from receiving the erased
 Typical uses for censor are due to security or legal requirements, including::
- * Passwords, private keys, crytographic material
+ * Passwords, private keys, cryptographic material
  * Licensed data/code/libraries for which the license has expired
  * Personally Identifiable Information or other private data
 Censored nodes can interrupt mercurial's typical operation whenever the excised
 data needs to be materialized. Some commands, like ``hg cat``/``hg revert``,
 simply fail when asked to produce censored data. Others, like ``hg verify`` and
 ``hg update``, must be capable of tolerating censored data to continue to
 function in a meaningful way. Such commands only tolerate censored file
--- a/hgext/largefiles/overrides.py
+++ b/hgext/largefiles/overrides.py
@@ -319,17 +319,17 @@ def overridelog(orig, ui, repo, *pats, *
                 return kindpat[0] + ':' + tostandin(kindpat[1])
             return tostandin(kindpat[1])
         if m._cwd:
             hglf = lfutil.shortname
             back = util.pconvert(m.rel(hglf)[:-len(hglf)])
             def tostandin(f):
-                # The file may already be a standin, so trucate the back
+                # The file may already be a standin, so truncate the back
                 # prefix and test before mangling it.  This avoids turning
                 # 'glob:../.hglf/foo*' into 'glob:../.hglf/../.hglf/foo*'.
                 if f.startswith(back) and lfutil.splitstandin(f[len(back):]):
                     return f
                 # An absolute path is from outside the repo, so truncate the
                 # path to the root before building the standin.  Otherwise cwd
                 # is somewhere in the repo, relative to root, and needs to be
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -193,18 +193,18 @@ def rebase(ui, repo, **opts):
     Returns 0 on success, 1 if nothing to rebase or there are
     unresolved conflicts.
     originalwd = target = None
     activebookmark = None
     external = nullrev
-    # Mapping between thes old revision id and either what is the new rebased
-    # revision or what needs to be done with the old revsion. The state dict
+    # Mapping between the old revision id and either what is the new rebased
+    # revision or what needs to be done with the old revision. The state dict
     # will be what contains most of the rebase progress state.
     state = {}
     skipped = set()
     targetancestors = set()
     lock = wlock = None
@@ -1167,17 +1167,17 @@ def _rebasedvisible(orig, repo):
     blockers.update(getattr(repo, '_rebaseset', ()))
     return blockers
 def _computeobsoletenotrebased(repo, rebasesetrevs, dest):
     """return a mapping obsolete => successor for all obsolete nodes to be
     rebased that have a successors in the destination"""
     obsoletenotrebased = {}
-    # Build a mapping succesor => obsolete nodes for the obsolete
+    # Build a mapping successor => obsolete nodes for the obsolete
     # nodes to be rebased
     allsuccessors = {}
     cl = repo.changelog
     for r in rebasesetrevs:
         n = repo[r]
         if n.obsolete():
             node = cl.node(r)
             for s in obsolete.allsuccessors(repo.obsstore, [node]):
--- a/mercurial/bookmarks.py
+++ b/mercurial/bookmarks.py
@@ -166,17 +166,17 @@ def activate(repo, mark):
     repo._activebookmark = mark
 def deactivate(repo):
-    Unset the active bookmark in this reposiotry.
+    Unset the active bookmark in this repository.
     wlock = repo.wlock()
         repo._activebookmark = None
     except OSError as inst:
         if inst.errno != errno.ENOENT:
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -58,17 +58,17 @@ def filterchunks(ui, originalhunks, usec
         return patch.filterpatch(ui, originalhunks, operation)
 def recordfilter(ui, originalhunks, operation=None):
     """ Prompts the user to filter the originalhunks and return a list of
     selected hunks.
     *operation* is used for ui purposes to indicate the user
-    what kind of filtering they are doing: reverting, commiting, shelving, etc.
+    what kind of filtering they are doing: reverting, committing, shelving, etc.
     *operation* has to be a translated string.
     usecurses =  ui.configbool('experimental', 'crecord', False)
     testfile = ui.config('experimental', 'crecordtest', None)
     oldwrite = setupwrapcolorwrite(ui)
         newchunks = filterchunks(ui, originalhunks, usecurses, testfile,
@@ -836,17 +836,17 @@ def service(opts, parentfn=None, initfn=
 extrapreimport = []  # run before commit
 extrapostimport = [] # run after commit
 # mapping from identifier to actual import function
 # 'preimport' are run before the commit is made and are provided the following
 # arguments:
 # - repo: the localrepository instance,
 # - patchdata: data extracted from patch header (cf m.patch.patchheadermap),
-# - extra: the future extra dictionnary of the changeset, please mutate it,
+# - extra: the future extra dictionary of the changeset, please mutate it,
 # - opts: the import options.
 # XXX ideally, we would just pass an ctx ready to be computed, that would allow
 # mutation of in memory commit and more. Feel free to rework the code to get
 # there.
 extrapreimportmap = {}
 # 'postimport' are run after the commit is made and are provided the following
 # argument:
 # - ctx: the changectx created by import.
--- a/mercurial/copies.py
+++ b/mercurial/copies.py
@@ -236,17 +236,17 @@ def _computenonoverlap(repo, c1, c2, add
         repo.ui.debug("  unmatched files in other:\n   %s\n"
                       % "\n   ".join(u2))
     return u1, u2
 def _makegetfctx(ctx):
     """return a 'getfctx' function suitable for checkcopies usage
     We have to re-setup the function building 'filectx' for each
-    'checkcopies' to ensure the linkrev adjustement is properly setup for
+    'checkcopies' to ensure the linkrev adjustment is properly setup for
     each. Linkrev adjustment is important to avoid bug in rename
     detection. Moreover, having a proper '_ancestrycontext' setup ensures
     the performance impact of this adjustment is kept limited. Without it,
     each file could do a full dag traversal making the time complexity of
     the operation explode (see issue4537).
     This function exists here mostly to limit the impact on stable. Feel
     free to refactor on default.
--- a/mercurial/crecord.py
+++ b/mercurial/crecord.py
@@ -190,17 +190,17 @@ class patch(patchnode, list): # todo: re
         # add parent patch object reference to each header
         for header in self:
             header.patch = self
 class uiheader(patchnode):
     """patch header
-    xxx shoudn't we move this to mercurial/patch.py ?
+    xxx shouldn't we move this to mercurial/patch.py ?
     def __init__(self, header):
         self.nonuiheader = header
         # flag to indicate whether to apply this chunk
         self.applied = True
         # flag which only affects the status display indicating if a node's
         # children are partially applied (i.e. some applied, some not).
@@ -1429,25 +1429,25 @@ are you sure you want to review/edit and
             return True
             return False
     def recenterdisplayedarea(self):
         once we scrolled with pg up pg down we can be pointing outside of the
         display zone. we print the patch with towin=False to compute the
-        location of the selected item eventhough it is outside of the displayed
+        location of the selected item even though it is outside of the displayed
         zone and then update the scroll.
     def toggleedit(self, item=None, test=False):
-            edit the currently chelected chunk
+            edit the currently selected chunk
         def updateui(self):
             self.numpadlines = self.getnumlinesdisplayed(ignorefolding=True) + 1
             self.chunkpad = curses.newpad(self.numpadlines, self.xscreensize)
--- a/mercurial/dirstate.py
+++ b/mercurial/dirstate.py
@@ -75,17 +75,17 @@ class dirstate(object):
         self._dirtypl = False
         self._lastnormaltime = 0
         self._ui = ui
         self._filecache = {}
         self._parentwriters = 0
         self._filename = 'dirstate'
         self._pendingfilename = '%s.pending' % self._filename
-        # for consitent view between _pl() and _read() invocations
+        # for consistent view between _pl() and _read() invocations
         self._pendingmode = None
     def beginparentchange(self):
         '''Marks the beginning of a set of changes that involve changing
         the dirstate parents. If there is an exception during this time,
         the dirstate will not be written when the wlock is released. This
         prevents writing an incoherent dirstate where the parent doesn't
         match the contents.
--- a/mercurial/exchange.py
+++ b/mercurial/exchange.py
@@ -605,17 +605,17 @@ def b2partsgenerator(stepname, idx=None)
             b2partsgenorder.insert(idx, stepname)
         return func
     return dec
 def _pushb2ctxcheckheads(pushop, bundler):
     """Generate race condition checking parts
-    Exists as an indepedent function to aid extensions
+    Exists as an independent function to aid extensions
     if not pushop.force:
         bundler.newpart('check:heads', data=iter(pushop.remoteheads))
 def _pushb2ctx(pushop, bundler):
     """handle changegroup push through bundle2
--- a/mercurial/extensions.py
+++ b/mercurial/extensions.py
@@ -200,17 +200,17 @@ def wrapcommand(table, command, wrapper,
     For example, if your extension wraps the ``bookmarks`` command to add the
     flags ``--remote`` and ``--all`` you might call this function like so:
       synopsis = ' [-a] [--remote]'
       docstring = """
       The ``remotenames`` extension adds the ``--remote`` and ``--all`` (``-a``)
       flags to the bookmarks command. Either flag will show the remote bookmarks
-      known to the repository; ``--remote`` will also supress the output of the
+      known to the repository; ``--remote`` will also suppress the output of the
       local bookmarks.
       extensions.wrapcommand(commands.table, 'bookmarks', exbookmarks,
                              synopsis, docstring)
     assert callable(wrapper)
     aliases, entry = cmdutil.findcmd(command, table)
--- a/mercurial/help/hgweb.txt
+++ b/mercurial/help/hgweb.txt
@@ -69,17 +69,17 @@ style is with the ``style`` query string
 ``/log?style=atom``. The hyphenated URL parameter is preferred.
 Not all templates are available for all styles. Attempting to use
 a style that doesn't have all templates defined may result in an error
 rendering the page.
 Many commands take a ``{revision}`` URL parameter. This defines the
 changeset to operate on. This is commonly specified as the short,
-12 digit hexidecimal abbreviation for the full 40 character unique
+12 digit hexadecimal abbreviation for the full 40 character unique
 revision identifier. However, any value described by
 :hg:`help revisions` typically works.
 Commands and URLs
 The following web commands and their URLs are available:
--- a/mercurial/hg.py
+++ b/mercurial/hg.py
@@ -819,17 +819,17 @@ def remoteui(src, opts):
         dst.setconfig('web', 'cacerts', v, 'copied')
     elif v:
         dst.setconfig('web', 'cacerts', util.expandpath(v), 'copied')
     return dst
 # Files of interest
 # Used to check if the repository has changed looking at mtime and size of
-# theses files.
+# these files.
 foi = [('spath', '00changelog.i'),
        ('spath', 'phaseroots'), # ! phase can change content at the same size
        ('spath', 'obsstore'),
        ('path', 'bookmarks'), # ! bookmark can change content at the same size
 class cachedlocalrepo(object):
     """Holds a localrepository that can be cached and reused."""
--- a/mercurial/hgweb/webcommands.py
+++ b/mercurial/hgweb/webcommands.py
@@ -735,17 +735,17 @@ def filediff(web, req, tmpl):
     Show how a file changed in a particular commit.
     The ``filediff`` template is rendered.
-    This hander is registered under both the ``/diff`` and ``/filediff``
+    This handler is registered under both the ``/diff`` and ``/filediff``
     paths. ``/diff`` is used in modern code.
     fctx, ctx = None, None
         fctx = webutil.filectx(web.repo, req)
     except LookupError:
         ctx = webutil.changectx(web.repo, req)
         path = webutil.cleanpath(web.repo, req.form['file'][0])
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -1301,17 +1301,17 @@ class localrepository(object):
         If both 'lock' and 'wlock' must be acquired, ensure you always acquires
         'wlock' first to avoid a dead-lock hazard.'''
         l = self._wlockref and self._wlockref()
         if l is not None and l.held:
             return l
-        # We do not need to check for non-waiting lock aquisition.  Such
+        # We do not need to check for non-waiting lock acquisition.  Such
         # acquisition would not cause dead-lock as they would just fail.
         if wait and (self.ui.configbool('devel', 'all-warnings')
                      or self.ui.configbool('devel', 'check-locks')):
             l = self._lockref and self._lockref()
             if l is not None and l.held:
                 self.ui.develwarn('"wlock" acquired after "lock"')
         def unlock():
--- a/mercurial/match.py
+++ b/mercurial/match.py
@@ -258,17 +258,17 @@ class match(object):
         '''Matcher will match everything and .files() will be empty
         - optimization might be possible and necessary.'''
         return self._always
     def ispartial(self):
         '''True if the matcher won't always match.
         Although it's just the inverse of _always in this implementation,
-        an extenion such as narrowhg might make it return something
+        an extension such as narrowhg might make it return something
         slightly different.'''
         return not self._always
     def isexact(self):
         return self.matchfn == self.exact
     def prefix(self):
         return not self.always() and not self.isexact() and not self.anypats()
--- a/mercurial/minirst.py
+++ b/mercurial/minirst.py
@@ -510,17 +510,17 @@ def formatblock(block, width):
         text = ' '.join(map(str.strip, block['lines'][1:]))
         return '%s\n%s\n' % (term, util.wrap(text, width=width,
     subindent = indent
     if block['type'] == 'bullet':
         if block['lines'][0].startswith('| '):
             # Remove bullet for line blocks and add no extra
-            # indention.
+            # indentation.
             block['lines'][0] = block['lines'][0][2:]
             m = _bulletre.match(block['lines'][0])
             subindent = indent + m.end() * ' '
     elif block['type'] == 'field':
         key = block['key']
         subindent = indent + _fieldwidth * ' '
         if len(key) + 2 > _fieldwidth:
--- a/mercurial/patch.py
+++ b/mercurial/patch.py
@@ -158,26 +158,26 @@ patchheadermap = [('Date', 'date'),
                   ('Node ID', 'nodeid'),
 def extract(ui, fileobj):
     '''extract patch from data read from fileobj.
     patch can be a normal patch or contained in an email message.
-    return a dictionnary. Standard keys are:
+    return a dictionary. Standard keys are:
       - filename,
       - message,
       - user,
       - date,
       - branch,
       - node,
       - p1,
       - p2.
-    Any item can be missing from the dictionary. If filename is mising,
+    Any item can be missing from the dictionary. If filename is missing,
     fileobj did not contain a patch. Caller must unlink filename when done.'''
     # attempt to detect the start of a patch
     # (this heuristic is borrowed from quilt)
     diffre = re.compile(r'^(?:Index:[ \t]|diff[ \t]|RCS file: |'
                         r'retrieving revision [0-9]+(\.[0-9]+)*$|'
                         r'---[ \t].*?^\+\+\+[ \t]|'
                         r'\*\*\*[ \t].*?^---[ \t])', re.MULTILINE|re.DOTALL)
--- a/mercurial/progress.py
+++ b/mercurial/progress.py
@@ -17,17 +17,17 @@ from . import encoding
 def spacejoin(*args):
     return ' '.join(s for s in args if s)
 def shouldprint(ui):
     return not (ui.quiet or ui.plain()) and (
         ui._isatty(sys.stderr) or ui.configbool('progress', 'assume-tty'))
 def fmtremaining(seconds):
-    """format a number of remaining seconds in humain readable way
+    """format a number of remaining seconds in human readable way
     This will properly display seconds, minutes, hours, days if needed"""
     if seconds < 60:
         # i18n: format XX seconds as "XXs"
         return _("%02ds") % (seconds)
     minutes = seconds // 60
     if minutes < 60:
         seconds -= minutes * 60
--- a/mercurial/sshpeer.py
+++ b/mercurial/sshpeer.py
@@ -53,17 +53,17 @@ class doublepipe(object):
     If large amounts of data are read from "main", the forward will cease after
     the first bytes start to appear. This simplifies the implementation
     without affecting actual output of sshpeer too much as we rarely issue
     large read for data not yet emitted by the server.
     The main pipe is expected to be a 'bufferedinputpipe' from the util module
     that handle all the os specific bites. This class lives in this module
-    because it focus on behavior specifig to the ssh protocol."""
+    because it focus on behavior specific to the ssh protocol."""
     def __init__(self, ui, main, side):
         self._ui = ui
         self._main = main
         self._side = side
     def _wait(self):
         """wait until some data are available on main or side
--- a/mercurial/subrepo.py
+++ b/mercurial/subrepo.py
@@ -413,17 +413,17 @@ def newcommitphase(ui, ctx):
 class abstractsubrepo(object):
     def __init__(self, ctx, path):
         """Initialize abstractsubrepo part
         ``ctx`` is the context referring this subrepository in the
         parent repository.
-        ``path`` is the path to this subrepositiry as seen from
+        ``path`` is the path to this subrepository as seen from
         innermost repository.
         self.ui = ctx.repo().ui
         self._ctx = ctx
         self._path = path
     def storeclean(self, path):
@@ -1051,17 +1051,17 @@ class hgsubrepo(abstractsubrepo):
             # A missing subrepo revision may be a case of needing to pull it, so
             # don't treat this as an error.
             self._repo.ui.warn(_("subrepo '%s' not found in revision %s\n") %
                                (self._relpath, node.short(self._ctx.node())))
             return 0
     def wvfs(self):
-        """return own wvfs for efficiency and consitency
+        """return own wvfs for efficiency and consistency
         return self._repo.wvfs
     def _relpath(self):
         """return path to this subrepository as seen from outermost repository
         # Keep consistent dir separators by avoiding vfs.join(self._path)
--- a/mercurial/ui.py
+++ b/mercurial/ui.py
@@ -926,17 +926,17 @@ class ui(object):
         if (self.quiet or self.debugflag
                 or self.configbool('progress', 'disable', False)
                 or not progress.shouldprint(self)):
             return None
         return getprogbar(self)
     def _progclear(self):
         """clear progress bar output if any. use it before any output"""
-        if '_progbar' not in vars(self): # nothing loadef yet
+        if '_progbar' not in vars(self): # nothing loaded yet
         if self._progbar is not None and self._progbar.printed:
     def progress(self, topic, pos, item="", unit="", total=None):
         '''show a progress message
         With stock hg, this is simply a debug message that is hidden
--- a/tests/test-bookmarks-pushpull.t
+++ b/tests/test-bookmarks-pushpull.t
@@ -534,17 +534,17 @@ Test to show result of bookmarks compari
   $ hg -R source bookmarks -r 0 ADV_ON_REPO2
   $ hg -R source bookmarks -r 0 DIFF_ADV_ON_REPO1
   $ hg -R source bookmarks -r 0 DIFF_ADV_ON_REPO2
   $ hg -R source bookmarks -r 1 DIVERGED
   $ hg clone -U source repo1
 (test that incoming/outgoing exit with 1, if there is no bookmark to
-be excahnged)
+be exchanged)
   $ hg -R repo1 incoming -B
   comparing with $TESTTMP/bmcomparison/source
   searching for changed bookmarks
   no changed bookmarks found
   $ hg -R repo1 outgoing -B
   comparing with $TESTTMP/bmcomparison/source
--- a/tests/test-churn.t
+++ b/tests/test-churn.t
@@ -166,17 +166,17 @@ Test multibyte sequences in names
   $ hg --encoding utf-8 churn -ct '{author|person}'
   user1           4 **********************************************************
   user3           3 ********************************************
   user2           2 *****************************
   user4           2 *****************************
   El Ni\xc3\xb1o         1 *************** (esc)
   with space      1 ***************
-Test --template argument, with backwards compatiblity
+Test --template argument, with backwards compatibility
   $ hg churn -t '{author|user}'
   user1      4 ***************************************************************
   user3      3 ***********************************************
   user2      2 ********************************
   nino       1 ****************
   with       1 ****************
--- a/tests/test-commit-interactive-curses.t
+++ b/tests/test-commit-interactive-curses.t
@@ -66,17 +66,17 @@ Committing only one file
 Committing only one hunk while aborting edition of hunk
 - Untoggle all the hunks, go down to the second file
 - unfold it
 - go down to second hunk (1 for the first hunk, 1 for the first hunkline, 1 for the second hunk, 1 for the second hunklike)
 - toggle the second hunk
-- edit the hunk and quit the editor imediately with non-zero status
+- edit the hunk and quit the editor immediately with non-zero status
 - commit
   $ printf "printf 'editor ran\n'; exit 1" > editor.sh
   $ echo "x" > c
   $ cat b >> c
   $ echo "y" >> c
   $ mv c b
   $ cat <<EOF >testModeCommands