public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Brian Dolbec" <brian.dolbec@gmail.com>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/layman:master commit in: layman/
Date: Sat,  6 Aug 2011 18:29:48 +0000 (UTC)	[thread overview]
Message-ID: <341f69005710839bc984e414a823238c9329bd08.dol-sen@gentoo> (raw)

commit:     341f69005710839bc984e414a823238c9329bd08
Author:     dol-sen <brian.dolbec <AT> gmail <DOT> com>
AuthorDate: Sat Aug  6 18:28:53 2011 +0000
Commit:     Brian Dolbec <brian.dolbec <AT> gmail <DOT> com>
CommitDate: Sat Aug  6 18:28:53 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/layman.git;a=commit;h=341f6900

add debug messages, fix error reporting in the api, refactor action & error processing/tracking.

---
 layman/api.py |   45 ++++++++++++++++++++++++++-----------
 layman/cli.py |   68 +++++++++++++++++++++++++++++++++++++-------------------
 2 files changed, 77 insertions(+), 36 deletions(-)

diff --git a/layman/api.py b/layman/api.py
index 869d882..a5045aa 100755
--- a/layman/api.py
+++ b/layman/api.py
@@ -112,7 +112,7 @@ class LaymanAPI(object):
         results = []
         for ovl in repos:
             if not self.is_installed(ovl):
-                self._error("Repository '"+ovl+"' was not installed")
+                self.output.error("Repository '"+ovl+"' was not installed")
                 results.append(False)
                 continue
             success = False
@@ -142,11 +142,11 @@ class LaymanAPI(object):
         results = []
         for ovl in repos:
             if self.is_installed(ovl):
-                self._error("Repository '"+ovl+"' was already installed")
+                self.output.error("Repository '"+ovl+"' was already installed")
                 results.append(False)
                 continue
             if not self.is_repo(ovl):
-                self._error(UnknownOverlayMessage(ovl))
+                self.output.error(UnknownOverlayMessage(ovl))
                 results.append(False)
                 continue
             success = False
@@ -199,7 +199,7 @@ class LaymanAPI(object):
 
         for ovl in repos:
             if not self.is_repo(ovl):
-                self._error(UnknownOverlayMessage(ovl))
+                self.output.error(UnknownOverlayMessage(ovl))
                 result[ovl] = ('', False, False)
                 continue
             try:
@@ -251,7 +251,7 @@ class LaymanAPI(object):
 
         for ovl in repos:
             if not self.is_repo(ovl):
-                self._error(UnknownOverlayMessage(ovl))
+                self.output.error(UnknownOverlayMessage(ovl))
                 result[ovl] = ('', False, False)
                 continue
             try:
@@ -298,26 +298,39 @@ class LaymanAPI(object):
         @param repos: ['repo-id1', ...] or 'repo-id'
         @rtype bool or {'repo-id': bool,...}
         """
+        self.output.debug("API.sync(); repos to sync = %s" % ', '.join(repos), 5)
         fatals = []
         warnings = []
         success  = []
         repos = self._check_repo_type(repos, "sync")
         db = self._get_installed_db()
 
+        self.output.debug("API.sync(); starting ovl loop", 5)
         for ovl in repos:
+            self.output.debug("API.sync(); starting ovl = %s" %ovl, 5)
             try:
+                self.output.debug("API.sync(); selecting %s, db = %s" % (ovl, str(db)), 5)
                 odb = db.select(ovl)
+                self.output.debug("API.sync(); %s now selected" %ovl, 5)
             except UnknownOverlayException as error:
-                self._error(UnknownOverlayException(error))
+                self.output.debug("API.sync(); UnknownOverlayException selecting %s" %ovl, 5)
+                self._error(str(error))
+                fatals.append((ovl,
+                    'Failed to select overlay "' + ovl + '".\nError was: '
+                    + str(error)))
+                self.output.debug("API.sync(); UnknownOverlayException "
+                    "selecting %s.   continuing to next ovl..." %ovl, 5)
                 continue
 
             try:
+                self.output.debug("API.sync(); try: self._get_remote_db().select(ovl)", 5)
                 ordb = self._get_remote_db().select(ovl)
             except UnknownOverlayException:
                 message = 'Overlay "%s" could not be found in the remote lists.\n' \
                         'Please check if it has been renamed and re-add if necessary.' % ovl
                 warnings.append((ovl, message))
             else:
+                self.output.debug("API.sync(); else: self._get_remote_db().select(ovl)", 5)
                 current_src = odb.sources[0].src
                 available_srcs = set(e.src for e in ordb.sources)
                 if ordb and odb and not current_src in available_srcs:
@@ -348,6 +361,7 @@ class LaymanAPI(object):
                             }))
 
             try:
+                self.output.debug("API.sync(); starting db.sync(ovl)", 5)
                 db.sync(ovl, self.config['quiet'])
                 success.append((ovl,'Successfully synchronized overlay "' + ovl + '".'))
             except Exception as error:
@@ -357,19 +371,22 @@ class LaymanAPI(object):
 
         if output_results:
             if success:
-                self.output.info('\nSucceeded:\n------\n', 3)
+                message = '\nSucceeded:\n------\n'
                 for ovl, result in success:
-                    self.output.info(result, 3)
+                    message += result + '\n'
+                self.output.info(message, 3)
 
             if warnings:
-                self.output.warn('\nWarnings:\n------\n', 2)
+                message = '\nWarnings:\n------\n'
                 for ovl, result in warnings:
-                    self.output.warn(result + '\n', 2)
+                    message += result + '\n'
+                self.output.warn(message, 2)
 
             if fatals:
-                self.output.error('\nErrors:\n------\n')
+                message = '\nErrors:\n------\n'
                 for ovl, result in fatals:
-                    self.output.error(result + '\n')
+                    message += result + '\n'
+                self.output.error(message)
 
         self.sync_results = (success, warnings, fatals)
 
@@ -434,7 +451,7 @@ class LaymanAPI(object):
                 'LaymanAPI.fetch_remote_list(); cache updated = %s'
                 % str(dbreload),8)
         except Exception as error:
-            self._error('Failed to fetch overlay list!\n Original Error was: '
+            self.output.error('Failed to fetch overlay list!\n Original Error was: '
                     + str(error))
             return False
         self.get_available(dbreload)
@@ -483,6 +500,7 @@ class LaymanAPI(object):
         due to code taken from the packagekit backend.
         """
         self._error_messages.append(message)
+        self.output.debug("API._error(); _error_messages = %s" % str(self._error_messages), 4)
         if self.report_errors:
             print(message, file=self.config['stderr'])
 
@@ -494,6 +512,7 @@ class LaymanAPI(object):
         @rtype: list
         @return: list of error strings
         """
+        self.output.debug("API.get_errors(); _error_messages = %s" % str(self._error_messages), 4)
         if len(self._error_messages):
             messages =  self._error_messages[:]
             self._error_messages = []

diff --git a/layman/cli.py b/layman/cli.py
index 5618d49..f545b0e 100644
--- a/layman/cli.py
+++ b/layman/cli.py
@@ -135,7 +135,7 @@ class Main(object):
         #print("config.keys()", config.keys())
         self.output = config['output']
         self.api = LaymanAPI(config,
-                             report_errors=True,
+                             report_errors=False,
                              output=config.output)
         # Given in order of precedence
         self.actions = [('fetch',      'Fetch'),
@@ -148,6 +148,8 @@ class Main(object):
                         ('list_local', 'ListLocal'),]
 
     def __call__(self):
+        self.output.debug("CLI.__call__(): self.config.keys()"
+            " %s" % str(self.config.keys()), 6)
         # Make fetching the overlay list a default action
         if not 'nofetch' in self.config.keys():
             # Actions that implicitely call the fetch operation before
@@ -169,23 +171,41 @@ class Main(object):
             self.output.die('Failed setting to umask "' + umask +
                 '"!\nError was: ' + str(error))
 
+        action_errors = []
+        results = []
+        act=set([x[0] for x in self.actions])
+        k=set([x for x in self.config.keys()])
+        a=act.intersection(k)
+        self.output.debug('Actions = %s' % str(a), 4)
         for action in self.actions:
 
-            self.output.debug('Checking for action', 7)
+            self.output.debug('Checking for action %s' % action[0], 4)
 
             if action[0] in self.config.keys():
-                try:
-                    result += getattr(self, action[1])()
-                except Exception as error:
-                    for _error in self.api.get_errors():
-                        self.output.error(_error)
+                result += getattr(self, action[1])()
+                _errors = self.api.get_errors()
+                if _errors:
+                    self.output.debug("CLI: found errors performing "
+                        "action %s" % action[0], 2)
+                    action_errors.append((action[0], _errors))
                     result = -1  # So it cannot remain 0, i.e. success
-                    break
+            results.append(result)
+            self.output.debug('Completed action %s, result %s'
+                % (action[0], result==0), 4)
+
+        self.output.debug('Checking for action errors', 4)
+        if action_errors:
+            for action, _errors in action_errors:
+                self.output.notice("\n")
+                self.output.warn("CLI: Errors occured processing action"
+                    " %s" % action)
+                for _error in _errors:
+                    self.output.error(_error)
 
         # Reset umask
         os.umask(old_umask)
 
-        if not result:
+        if -1 in results:
             sys.exit(FAILURE)
         else:
             sys.exit(SUCCEED)
@@ -194,20 +214,21 @@ class Main(object):
     def Fetch(self):
         ''' Fetches the overlay listing.
         '''
-        self.output.info("Fetching remote list,...", 2)
+        self.output.info("\nFetching remote list,...", 2)
         result = self.api.fetch_remote_list()
         if result:
             self.output.info('Fetch Ok', 2)
-        else:
-            errors = self.api.get_errors()
-            self.output.warn('Download failed.\nError was: '
-                             + str('\n'.join(errors)), 2)
+        #else:
+        #    errors = self.api.get_errors()
+        #    self.output.warn('Download failed.\nError was: '
+        #                     + str('\n'.join(errors)), 2)
         return result
 
 
     def Add(self):
         ''' Adds the selected overlays.
         '''
+        self.output.info("\nAdding overlay,...", 2)
         selection = decode_selection(self.config['add'])
         if 'ALL' in selection:
             selection = self.api.get_available()
@@ -216,10 +237,10 @@ class Main(object):
         if result:
             self.output.info('Successfully added overlay(s) '+\
                 ', '.join(selection) +'.', 2)
-        else:
-            errors = self.api.get_errors()
-            self.output.warn('Failed to add overlay(s).\nError was: '
-                             + str('\n'.join(errors)), 2)
+        #else:
+        #    errors = self.api.get_errors()
+        #    self.output.warn('Failed to add overlay(s).\nError was: '
+        #                     + str('\n'.join(errors)), 2)
         return result
 
 
@@ -227,6 +248,7 @@ class Main(object):
     def Sync(self):
         ''' Syncs the selected overlays.
         '''
+        self.output.info("\nSyncing selected overlays,...", 2)
         # Note api.sync() defaults to printing results
         selection = decode_selection(self.config['sync'])
         if self.config['sync_all'] or 'ALL' in selection:
@@ -238,18 +260,18 @@ class Main(object):
     def Delete(self):
         ''' Deletes the selected overlays.
         '''
+        self.output.info('\nDeleting selected overlays,...', 2)
         selection = decode_selection(self.config['delete'])
         if 'ALL' in selection:
             selection = self.api.get_installed()
-        self.output.debug('Deleting selected overlays', 6)
         result = self.api.delete_repos(selection)
         if result:
             self.output.info('Successfully deleted overlay(s) ' +\
                 ', '.join(selection) + '.', 2)
-        else:
-            errors = self.api.get_errors()
-            self.output.warn('Failed to delete overlay(s).\nError was: '
-                             + str('\n'.join(errors)), 2)
+        #else:
+        #    errors = self.api.get_errors()
+        #    self.output.warn('Failed to delete overlay(s).\nError was: '
+        #                     + str('\n'.join(errors)), 2)
         return result
 
 



             reply	other threads:[~2011-08-06 18:29 UTC|newest]

Thread overview: 246+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-06 18:29 Brian Dolbec [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-04-24 20:59 [gentoo-commits] proj/layman:master commit in: layman/ Brian Dolbec
2020-04-24 20:59 Brian Dolbec
2017-03-22  6:36 Brian Dolbec
2017-02-02 17:12 Brian Dolbec
2017-02-02  1:12 Devan Franchini
2017-02-02  1:12 Devan Franchini
2016-11-10  2:59 Devan Franchini
2016-05-10 22:13 Brian Dolbec
2016-05-02  3:30 Devan Franchini
2016-03-10  0:00 Devan Franchini
2016-03-09 23:37 Devan Franchini
2016-02-29  6:21 Devan Franchini
2016-01-29 10:21 Brian Dolbec
2015-12-31  1:03 Devan Franchini
2015-12-26 23:24 Brian Dolbec
2015-11-29  3:26 Devan Franchini
2015-11-29  3:12 Devan Franchini
2015-10-17  3:20 Devan Franchini
2015-10-16 18:49 Devan Franchini
2015-10-16 18:49 Devan Franchini
2015-09-23 15:25 Devan Franchini
2015-09-05  6:03 Devan Franchini
2015-08-28  1:48 Devan Franchini
2015-08-28  1:48 Devan Franchini
2015-08-28  1:48 Devan Franchini
2015-08-04  1:05 Devan Franchini
2015-07-19  3:53 Devan Franchini
2015-07-17 17:05 Devan Franchini
2015-07-17 17:05 Devan Franchini
2015-07-17 17:05 Devan Franchini
2015-07-15 16:15 Devan Franchini
2015-07-15 15:53 Devan Franchini
2015-07-13 23:05 Devan Franchini
2015-07-13 13:26 Devan Franchini
2015-07-09 17:23 Devan Franchini
2015-07-09 16:18 Devan Franchini
2015-06-16  3:45 Devan Franchini
2015-06-14  4:12 Devan Franchini
2015-06-13  4:53 Devan Franchini
2015-06-13  2:38 Devan Franchini
2015-06-13  2:31 Devan Franchini
2015-05-13 21:32 Devan Franchini
2015-05-13 21:27 Devan Franchini
2015-05-13 20:38 Devan Franchini
2015-05-13 20:05 Devan Franchini
2015-05-13 19:58 Devan Franchini
2015-04-22 17:40 Devan Franchini
2015-04-20 17:15 Devan Franchini
2015-03-27 23:42 Devan Franchini
2015-03-26 22:50 Devan Franchini
2015-03-26 22:06 Devan Franchini
2015-03-24 23:08 Devan Franchini
2015-03-24 22:56 Devan Franchini
2015-03-24 22:20 Devan Franchini
2015-03-24 16:08 Devan Franchini
2015-03-07 22:40 Devan Franchini
2015-03-07 22:40 Devan Franchini
2015-03-07 22:10 Devan Franchini
2015-03-07 22:02 Devan Franchini
2015-02-21 18:41 Devan Franchini
2015-02-17  5:07 Brian Dolbec
2015-02-09 18:25 Devan Franchini
2015-02-08  4:20 Brian Dolbec
2015-02-08  4:20 Brian Dolbec
2015-02-08  2:58 Devan Franchini
2015-02-08  1:57 Brian Dolbec
2015-02-08  0:33 Devan Franchini
2015-02-05  2:56 Devan Franchini
2015-02-05  2:31 Devan Franchini
2015-02-05  2:20 Devan Franchini
2015-02-03  2:43 Devan Franchini
2014-12-08  4:15 Devan Franchini
2014-12-04 20:46 Devan Franchini
2014-11-13 19:03 Brian Dolbec
2014-11-13 18:43 Brian Dolbec
2014-11-13 18:43 Brian Dolbec
2014-11-13 18:08 Brian Dolbec
2014-11-13 18:08 Brian Dolbec
2014-11-13 18:08 Brian Dolbec
2014-11-13 18:08 Brian Dolbec
2014-11-02 21:14 Devan Franchini
2014-09-28 22:42 Devan Franchini
2014-09-20 17:47 Devan Franchini
2014-09-19 18:13 Devan Franchini
2014-09-19 18:13 Devan Franchini
2014-08-28 22:54 Brian Dolbec
2014-08-28 22:01 Devan Franchini
2014-08-28 22:01 Devan Franchini
2014-08-19  1:49 Devan Franchini
2014-08-17  4:01 ` Devan Franchini
2014-08-19  1:49 Devan Franchini
2014-08-19  1:49 Devan Franchini
2014-08-19  1:49 Devan Franchini
2014-08-15 23:27 ` Devan Franchini
2014-08-19  1:49 Devan Franchini
2014-08-15 23:16 ` Devan Franchini
2014-08-19  1:49 Devan Franchini
2014-08-15 22:33 ` Devan Franchini
2014-08-19  1:49 Devan Franchini
2014-08-16 22:46 ` Devan Franchini
2014-08-17 20:55 Devan Franchini
2014-08-19  1:49 ` Devan Franchini
2014-08-17 14:15 Brian Dolbec
2014-08-16 18:06 Brian Dolbec
2014-08-15 23:59 Devan Franchini
2014-08-19  1:49 ` Devan Franchini
2014-06-16  3:40 Brian Dolbec
2014-06-16  3:40 Brian Dolbec
2014-06-16  3:40 Brian Dolbec
2014-06-16  3:37 [gentoo-commits] proj/layman:gsoc2014 " Brian Dolbec
2014-06-16  3:40 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2014-06-16  3:37 [gentoo-commits] proj/layman:gsoc2014 " Brian Dolbec
2014-06-16  3:40 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2014-06-16  3:37 [gentoo-commits] proj/layman:gsoc2014 " Brian Dolbec
2014-06-16  3:40 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2014-06-16  3:37 [gentoo-commits] proj/layman:gsoc2014 " Brian Dolbec
2014-06-16  3:40 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2014-05-07 22:18 Devan Franchini
2014-03-10  3:18 Brian Dolbec
2013-12-29  2:30 Brian Dolbec
2013-08-18 14:48 Brian Dolbec
2013-07-29  1:46 Brian Dolbec
2013-01-11 18:29 Brian Dolbec
2012-12-16 18:13 Brian Dolbec
2012-11-28  4:14 Brian Dolbec
2012-11-28  4:02 Brian Dolbec
2012-11-28  4:02 Brian Dolbec
2012-11-18 22:15 Brian Dolbec
2012-11-18 22:15 Brian Dolbec
2012-11-18 22:15 Brian Dolbec
2012-11-01  4:00 Brian Dolbec
2012-10-30  8:30 Brian Dolbec
2012-10-17  6:21 Brian Dolbec
2012-10-17  6:21 Brian Dolbec
2012-10-13 22:20 Brian Dolbec
2012-10-13 22:20 Brian Dolbec
2012-10-08  5:37 Brian Dolbec
2012-10-07 23:40 Brian Dolbec
2012-10-07 23:40 Brian Dolbec
2012-06-07  4:49 Brian Dolbec
2012-06-07  4:49 Brian Dolbec
2012-06-07  4:49 Brian Dolbec
2012-04-14  2:14 Brian Dolbec
2012-04-09 19:47 Brian Dolbec
2012-04-01 21:54 Brian Dolbec
2012-03-26  3:43 Brian Dolbec
2012-03-04 15:36 Brian Dolbec
2011-12-27  2:20 Brian Dolbec
2011-10-27  4:42 Brian Dolbec
2011-10-26 23:19 Brian Dolbec
2011-10-14  3:14 Brian Dolbec
2011-09-24  6:07 Brian Dolbec
2011-08-25  3:33 Brian Dolbec
2011-08-21  7:53 Brian Dolbec
2011-08-21  7:53 Brian Dolbec
2011-08-21  7:53 Brian Dolbec
2011-08-20 17:06 Brian Dolbec
2011-08-20 17:06 Brian Dolbec
2011-08-11  3:24 Brian Dolbec
2011-08-11  3:24 Brian Dolbec
2011-08-11  3:24 Brian Dolbec
2011-08-11  3:24 Brian Dolbec
2011-08-09  2:46 Brian Dolbec
2011-08-07 21:21 Brian Dolbec
2011-08-07  7:12 Brian Dolbec
2011-08-07  7:12 Brian Dolbec
2011-08-07  7:12 Brian Dolbec
2011-08-07  6:00 Brian Dolbec
2011-08-07  2:29 Brian Dolbec
2011-08-06 20:30 Brian Dolbec
2011-08-06 18:29 Brian Dolbec
2011-07-28 21:33 Brian Dolbec
2011-07-23  6:45 Brian Dolbec
2011-07-20 18:34 Brian Dolbec
2011-07-12 20:01 Brian Dolbec
2011-07-12 19:57 Brian Dolbec
2011-07-12 19:57 Brian Dolbec
2011-07-12 19:02 Brian Dolbec
2011-07-12 19:02 Brian Dolbec
2011-05-18  5:19 Brian Dolbec
2011-05-18  5:13 Brian Dolbec
2011-05-14 13:06 Brian Dolbec
2011-05-05  9:44 Brian Dolbec
2011-05-02  5:25 Brian Dolbec
2011-05-01  2:18 Brian Dolbec
2011-05-01  0:53 Brian Dolbec
2011-05-01  0:26 Brian Dolbec
2011-04-30 22:37 Brian Dolbec
2011-04-30 22:37 Brian Dolbec
2011-04-30  6:37 Brian Dolbec
2011-04-30  6:37 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-02-19 11:01 Brian Dolbec
2011-02-19 11:01 Brian Dolbec
2011-02-19 11:01 Brian Dolbec
2011-02-19 11:01 Brian Dolbec
2011-02-19  4:49 Brian Dolbec
2011-02-19  4:47 Brian Dolbec
2011-02-19  4:10 Brian Dolbec
2011-02-19  4:07 Brian Dolbec
2011-02-17 21:53 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  0:54 [gentoo-commits] proj/layman:overlord_merge " Brian Dolbec
2011-02-14  6:00 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2011-02-14  0:54 [gentoo-commits] proj/layman:overlord_merge " Brian Dolbec
2011-02-14  6:00 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2011-02-14  0:54 [gentoo-commits] proj/layman:overlord_merge " Brian Dolbec
2011-02-14  6:00 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2011-02-14  0:54 [gentoo-commits] proj/layman:overlord_merge " Brian Dolbec
2011-02-14  6:00 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2011-02-14  0:54 [gentoo-commits] proj/layman:overlord_merge " Brian Dolbec
2011-02-14  6:00 ` [gentoo-commits] proj/layman:master " Brian Dolbec

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=341f69005710839bc984e414a823238c9329bd08.dol-sen@gentoo \
    --to=brian.dolbec@gmail.com \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox