Note that this was submitted against the 2.3.0 tag but applies cleanly
to unstable as well.

It assumes that an issue1584 patch (see previous mail) has been applied.

Wed Sep 16 00:42:56 CEST 2009  Eric Kow <[email protected]>
  * Resolve issue1583: on darcs get, suggest upgrading source repo to hashed.

New patches:

[Resolve issue1583: on darcs get, suggest upgrading source repo to hashed.
Eric Kow <[email protected]>**20090915224256
 Ignore-this: 55de10629718a536022782701fed2ba1
] hunk ./src/Darcs/Commands/Get.lhs 194
   putInfo $ text "Finished getting."
       where copy_repo =
                 withRepository opts $- \repository -> do
-                  if format_has HashedInventory rf || format_has HashedInventory rfsource
-                     then do debugMessage "Identifying and copying repository..."
-                             identifyRepositoryFor repository repodir >>= copyRepository
-                             when (SetScriptsExecutable `elem` opts) setScriptsExecutable
-                     else copy_repo_old_fashioned repository opts repodir
+                  let hashUs   = format_has HashedInventory rf
+                      hashThem = format_has HashedInventory rfsource
+                  case () of _ | hashUs && hashThem -> do
+                                   debugMessage "Identifying and copying repository..."
+                                   copyRepoHashed repository
+                               | hashUs -> do
+                                   putInfo $  text "Converting old-fashioned repository to hashed format..."
+                                           $$ text "*******************************************************************************"
+                                           $$ text "Fetching a hashed repository would be faster.  Perhaps you could persuade"
+                                           $$ text "the maintainer to run darcs optimize --upgrade with darcs 2.3.1 and higher?"
+                                           $$ text "*******************************************************************************"
+                                   copyRepoHashed repository
+                               | hashThem -> do
+                                   putInfo $ text "Fetching a hashed repository as an old-fashioned one..."
+                                   copyRepoHashed repository
+                               | otherwise -> copy_repo_old_fashioned repository opts repodir
+            copyRepoHashed repository =
+              do identifyRepositoryFor repository repodir >>= copyRepository
+                 when (SetScriptsExecutable `elem` opts) setScriptsExecutable
 
 make_repo_name :: [DarcsFlag] -> FilePath -> IO String
 make_repo_name (NewRepo n:_) _ =

Context:

[TAG 2.3.0
Petr Rockai <[email protected]>**20090723115125
 Ignore-this: e326d4ddff92c578e8fe8a3c23d00193
] 
Patch bundle hash:
6d8c935120c0dd8c65f13125ac5dbda94645b796
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to