I'm not entirely sure how I feel about this bundle... it's meant for 2.0.3
and based on a suggestion by Marc Weber (who would rather we just switched
to --darcs-2 outright... which seemed a bit too invasive a change to make
right before a release)

Mon Sep 22 22:59:13 BST 2008  Eric Kow <[EMAIL PROTECTED]>
  * Move repository creation to Darcs.Repository.
  This is just to avoid importing the DarcsRepo and HashedRepo code in higher
  level code.

Mon Sep 22 23:08:21 BST 2008  Eric Kow <[EMAIL PROTECTED]>
  * Print a warning in darcs init unless --darcs-2 is passed.

Mon Sep 22 23:10:24 BST 2008  Eric Kow <[EMAIL PROTECTED]>
  * Stop calling the darcs-2 format experimental.

Mon Sep 22 23:48:58 BST 2008  Eric Kow <[EMAIL PROTECTED]>
  * Translate mark-conflicts test into shell.
  It was failing because it expects init to be completely silent.  Since we
  were going to tweak it anyway, we might as well simplify the script.

New patches:

[Move repository creation to Darcs.Repository.
Eric Kow <[EMAIL PROTECTED]>**20080922215913
 This is just to avoid importing the DarcsRepo and HashedRepo code in higher
 level code.
] hunk ./src/Darcs/Commands/Init.lhs 21
 \subsection{darcs initialize}\label{initialize}
 \begin{code}
 module Darcs.Commands.Init ( initialize, initialize_cmd ) where
-import System.Directory ( createDirectory )
-import System.IO.Error ( isAlreadyExistsError )
-
 import Darcs.Commands ( DarcsCommand(..), nodefaults )
 import Darcs.Arguments ( DarcsFlag, pristine_tree, working_repo_dir,
                         inventory_choices )
hunk ./src/Darcs/Commands/Init.lhs 24
-
-import Darcs.Patch.Set ( PatchSet )
-import Darcs.Patch ( Patch )
-
-import Darcs.Ordered ( RL(..) )
-import Darcs.Repository.Prefs ( write_default_prefs )
-import Darcs.Repository.Format ( create_repo_format, writeRepoFormat,
-                                 RepoProperty ( HashedInventory ), format_has )
-import Darcs.Repository.Pristine ( createPristine, flagsToPristine )
-import Darcs.Lock ( writeBinFile )
-import Darcs.Repository.DarcsRepo ( write_inventory )
-import Darcs.Repository ( amNotInRepository )
-import Darcs.Global ( darcsdir )
+import Darcs.Repository ( amNotInRepository, createRepository )
 \end{code}
 
 \options{initialize}
hunk ./src/Darcs/Commands/Init.lhs 126
 
 \begin{code}
 initialize_cmd :: [DarcsFlag] -> [String] -> IO ()
-initialize_cmd opts _ = do
-    createDirectory darcsdir `catch`
-        (\e-> if isAlreadyExistsError e
-              then fail "Tree has already been initialized!"
-              else fail $ "Error creating directory `"++darcsdir++"'.")
-    createPristine $ flagsToPristine opts
-    createDirectory $ darcsdir ++ "/patches"
-    createDirectory $ darcsdir ++ "/prefs"
-    write_default_prefs
-    let rf = create_repo_format opts
-    writeRepoFormat rf (darcsdir++"/format")
-    if format_has HashedInventory rf
-        then writeBinFile (darcsdir++"/hashed_inventory") ""
-        else write_inventory "." (NilRL:<:NilRL :: PatchSet Patch) -- YUCK!
+initialize_cmd opts _ = createRepository opts
 \end{code}
 
hunk ./src/Darcs/Repository.lhs 39
                     tentativelyReplacePatches,
                     tentativelyMergePatches, considerMergeToWorking,
                     revertRepositoryChanges, finalizeRepositoryChanges,
-                    copyRepository, copy_oldrepo_patches,
+                          createRepository, copyRepository, copy_oldrepo_patches,
                     patchSetToRepository,
                     unrevertUrl,
                     applyToWorking, patchSetToPatches,
hunk ./src/Darcs/Repository.lhs 82
 
 import Control.Monad ( unless, when )
 import Data.Either(Either(..))
+import System.Directory ( createDirectory )
+import System.IO.Error ( isAlreadyExistsError )
 
 import qualified Darcs.Repository.DarcsRepo as DarcsRepo
 import qualified Darcs.Repository.HashedRepo as HashedRepo
hunk ./src/Darcs/Repository.lhs 97
                        concatRL, lengthRL, isShorterThanRL )
 import Darcs.Patch.Info ( PatchInfo )
 import Darcs.Repository.Format ( RepoProperty ( HashedInventory ),
-                                 format_has )
+                                 create_repo_format, format_has, writeRepoFormat )
+import Darcs.Repository.Prefs ( write_default_prefs )
+import Darcs.Repository.Pristine ( createPristine, flagsToPristine )
 import Darcs.Patch.Depends ( get_patches_beyond_tag )
 import Darcs.RepoPath ( toFilePath )
 import Darcs.Utils ( withCurrentDirectory, catchall, promptYorn )
hunk ./src/Darcs/Repository.lhs 106
 import Darcs.External ( copyFileOrUrl, Cachable(..) )
 import Darcs.Progress ( debugMessage, progressFL, progressRL, tediousSize,
                         beginTedious, endTedious, progress )
-import Darcs.Lock ( withTempDir )
+import Darcs.Lock ( withTempDir, writeBinFile )
 import Darcs.Sealed ( Sealed(..), FlippedSeal(..), flipSeal, mapFlipped )
 
 import Darcs.Flags ( DarcsFlag( Quiet, Partial, Lazy, Ephemeral,
hunk ./src/Darcs/Repository.lhs 119
 \end{code}
 
 \begin{code}
+createRepository :: [DarcsFlag] -> IO ()
+createRepository opts = do
+  createDirectory darcsdir `catch`
+      (\e-> if isAlreadyExistsError e
+            then fail "Tree has already been initialized!"
+            else fail $ "Error creating directory `"++darcsdir++"'.")
+  createPristine $ flagsToPristine opts
+  createDirectory $ darcsdir ++ "/patches"
+  createDirectory $ darcsdir ++ "/prefs"
+  write_default_prefs
+  let rf = create_repo_format opts
+  writeRepoFormat rf (darcsdir++"/format")
+  if format_has HashedInventory rf
+      then writeBinFile (darcsdir++"/hashed_inventory") ""
+      else DarcsRepo.write_inventory "." (NilRL:<:NilRL :: PatchSet Patch) -- YUCK!
+
 copyRepository :: RepoPatch p => Repository p C(r u t) -> IO ()
 copyRepository fromrepository@(Repo _ opts rf _)
     | Partial `elem` opts && not (format_has HashedInventory rf) =
[Print a warning in darcs init unless --darcs-2 is passed.
Eric Kow <[EMAIL PROTECTED]>**20080922220821] hunk ./src/Darcs/Commands/Init.lhs 21
 \subsection{darcs initialize}\label{initialize}
 \begin{code}
 module Darcs.Commands.Init ( initialize, initialize_cmd ) where
+
+import Control.Monad ( unless )
+
 import Darcs.Commands ( DarcsCommand(..), nodefaults )
hunk ./src/Darcs/Commands/Init.lhs 25
-import Darcs.Arguments ( DarcsFlag, pristine_tree, working_repo_dir,
-                        inventory_choices )
+import Darcs.Arguments ( DarcsFlag(UseFormat2, Quiet),
+                         pristine_tree, working_repo_dir, inventory_choices )
 import Darcs.Repository ( amNotInRepository, createRepository )
hunk ./src/Darcs/Commands/Init.lhs 28
+import Printer ( putDocLn, text, ($$) )
 \end{code}
 
 \options{initialize}
hunk ./src/Darcs/Commands/Init.lhs 130
 
 \begin{code}
 initialize_cmd :: [DarcsFlag] -> [String] -> IO ()
-initialize_cmd opts _ = createRepository opts
+initialize_cmd opts _ = do
+  createRepository opts
+  unless (Quiet `elem` opts || UseFormat2 `elem` opts) $
+    putDocLn $ text "Note: darcs-1 repositories are now deprecated."
+            $$ text "You can reinitialize this repository in the new format by removing"
+            $$ text "the _darcs directory and invoking darcs initialize --darcs-2."
 \end{code}
 
[Stop calling the darcs-2 format experimental.
Eric Kow <[EMAIL PROTECTED]>**20080922221024] hunk ./src/Darcs/Arguments.lhs 856
     [DarcsNoArgOption [] ["hashed"] UseHashedInventory
                           "Some new features. Compatible with older repos",
      DarcsNoArgOption [] ["darcs-2"] UseFormat2
-                          "All features. Related repos must use same format [EXPERIMENTAL]",
+                          "All features. Related repos must use same format",
      DarcsNoArgOption [] ["old-fashioned-inventory"] UseOldFashionedInventory
                           "Minimal features. What older repos use. [DEFAULT]"]
 
[Translate mark-conflicts test into shell.
Eric Kow <[EMAIL PROTECTED]>**20080922224858
 It was failing because it expects init to be completely silent.  Since we
 were going to tweak it anyway, we might as well simplify the script.
] move ./tests/mark-conflicts.pl ./tests/mark-conflicts.sh
hunk ./tests/mark-conflicts.sh 1
-#!/usr/bin/env perl
+#!/usr/bin/env bash
 
hunk ./tests/mark-conflicts.sh 3
-# Automated tests for "darcs mark-conflicts". 
+# Automated tests for "darcs mark-conflicts".
 
hunk ./tests/mark-conflicts.sh 5
-use lib 'lib/perl';
-use Test::More 'no_plan';
-use strict;
-use Test::Darcs;
-use Shell::Command;
-use File::Temp 'tempdir';
+# The builtin ! has the wrong semantics for not.
+not () { "$@" && exit 1 || :; }
 
hunk ./tests/mark-conflicts.sh 8
-my $work_dir = tempdir( CLEANUP => 1 );
-chdir $work_dir;
-
-mkpath 'temp1';
-chdir 'temp1';
-
-like( darcs('init'), qr/^$/i, 'initialized repo');
-open(F, ">_darcs/prefs/author") || die;
-print F "Tester";
-close(F);
-
-open(F, ">child_of_conflict") || die;
-print F "Conflict, Base .";
-close(F);
-
-darcs("add child_of_conflict");
-like( darcs("record -am 'Conflict Base'"), qr/finished/i);
-like( darcs("get . ../temp2"), qr/finished/i);
-
-chdir '../';
+mkdir temp1
+cd temp1
+darcs init
+echo "Conflict, Base ." > child_of_conflict
+darcs add child_of_conflict
+darcs record -am 'Conflict Base'
+cd ..
+darcs get temp1 temp2
 
 # Add and record differing lines to both repos
hunk ./tests/mark-conflicts.sh 18
-for my $repo (1,2) {
-    chdir "temp".$repo;
-
-    open(F, ">child_of_conflict") || die;
-    print F "Conflict, Part $repo.";
-    close(F);
-
-    like( darcs("record -A author -am 'Conflict Part $repo'"), qr/finished/i);
-
-    chdir '../';
-}
-
-chdir './temp1';
-my $pull_out = darcs("pull -a ../temp2");
-like($pull_out, qr/conflict/i);
-like($pull_out, qr/finished/i);
-
-{
-    open(F, "<child_of_conflict") || die;
-    my $line = <F>;
-    close(F);
-    like($line, qr/v v/, 'found conflict markers');
-}
-
-like( darcs("revert -a"), qr/finished/i, 'conflicts reverted');
-
-{
-    open(F, "<child_of_conflict") || die;
-    my $line = <F>;
-    close(F);
-    unlike($line, qr/v v/, 'conflict markers are gone');
-}
+cd temp1
+echo "Conflict, Part 1." > child_of_conflict
+darcs record -A author -am 'Conflict Part 1'
+cd ..
+cd temp2
+echo "Conflict, Part 2." > child_of_conflict
+darcs record -A author -am 'Conflict Part 2'
+cd ..
 
hunk ./tests/mark-conflicts.sh 27
-darcs("mark-conflicts");
+cd temp1
+darcs pull -a ../temp2 > log
+grep conflict log
+grep finished log
+grep 'v v' child_of_conflict
+darcs revert -a
+not grep 'v v' child_of_conflict
+darcs mark-conflicts
+grep 'v v' child_of_conflict
+cd ..
 
hunk ./tests/mark-conflicts.sh 38
-{
-    open(F, "<child_of_conflict") || die;
-    my $line = <F>;
-    close(F);
-    like($line, qr/v v/, 'found conflict markers after revert and mark-conflicts');
-}
+rm -rf temp1 temp2

Context:

[fix  bug I introduced into issue1039 test.
David Roundy <[EMAIL PROTECTED]>**20080921213043
 Ignore-this: 5b3c6476abae6bb050be014555d05bbe
] 
[Fix hang after a user input error (for example, EOF).
Judah Jacobson <[EMAIL PROTECTED]>**20080918163017] 
[replace consRLSealed with a more  general mapFlipped.
David Roundy <[EMAIL PROTECTED]>**20080921185241
 Ignore-this: c28f73f165254582cba6a14ba6ce93
] 
[make issue1039 fix allow small dissimilar  repositories.
David Roundy <[EMAIL PROTECTED]>**20080921184515
 Ignore-this: 918a09df18ef48c649c1bfaa866d6176
] 
[revert refactor that breaks type witnesses.
David Roundy <[EMAIL PROTECTED]>**20080921182331
 Ignore-this: dd692cffc1a238d6726448bacfe9cacc
] 
[Add '--ignore-unrelated-repos' option to disable unrelated repositories check.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919152631] 
[Resolve issue1039: detect seemingly unrelated repositories when doing push, pull and send.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919144553] 
[Refactor in pull_cmd.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919135349
 Ignore-this: e26a489a7a53aeaba544ae5ad0006700
] 
[Test for issue1039.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919153011] 
[manual: add an example of record --pipe prompts similar to tag --pipe docs
Simon Michael <[EMAIL PROTECTED]>**20080918205353] 
[user manual corrections regarding what record and tag --pipe prompt for
Simon Michael <[EMAIL PROTECTED]>**20080918204500] 
[clarify the short help for --pipe
Simon Michael <[EMAIL PROTECTED]>**20080918193717] 
[Spaces in Darcs.Arguments.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919150440] 
[Spaces in Darcs.Commands.Send.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919150139] 
[Spaces in Darcs.Commands.Pull.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919145812] 
[Spaces in Darcs.Commands.Push.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919145553] 
[Print "We have the following patches to send:" only when we really have somthing to send.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080919114229] 
[Use gmakeisms for prettier output.
Trent W. Buck <[EMAIL PROTECTED]>**20080919071358] 
[fix changes.pl test (translating to bash)
David Roundy <[EMAIL PROTECTED]>**20080917182432
 Ignore-this: 5f8bc7e1f9eadc073402a935142281c4
 This test made assumptions such as that darcs wouldn't ever add a long
 comment to its internal representation of changes, which are now
 broken.
] 
[hokey fix to allow unit tests to generate random input.
David Roundy <[EMAIL PROTECTED]>**20080917170913
 Ignore-this: 31e847e82eef741f4c6cc857fd79a245
 A nicer fix would be to move namepatch and patchinfo into some sort of
 random-number monad rather than leaving them in IO and using
 unsafePerformIO in the example-generation scripts.
] 
[resolve issue27: add junk to patch identifiers.
David Roundy <[EMAIL PROTECTED]>**20080917154657
 Ignore-this: b91ab6f6e05e0fda25488fa51653b741
] 
[TAG 2.0.3pre1
Eric Kow <[EMAIL PROTECTED]>**20080918023645] 
Patch bundle hash:
0552cbe0045149fd70b338dec9c42249cb29aa07
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to