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