[darcs-devel] darcs patch: Only copy files needed in external resolution

Edwin Thomson edwin.thomson at businesswebsoftware.com
Tue Oct 31 07:13:59 PST 2006


-------------- next part --------------
DarcsURL: http://www.abridgegame.org/repos/darcs-unstable/
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=_"

--=_
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

Tue Oct 31 15:11:02 GMT 2006  edwin.thomson at businesswebsoftware.com
  * Only copy files needed in external resolution
  =


--=_
Content-Type: text/x-darcs-patch; name="only-copy-files-needed-in-external-resolution.dpatch"
Content-Transfer-Encoding: quoted-printable
Content-Description: A darcs patch for your repository!


New patches:

[Only copy files needed in external resolution
edwin.thomson at businesswebsoftware.com**20061031151102
 =

] {
hunk ./PatchApply.lhs 21
+                    apply_to_slurpy_or_fail,
hunk ./PatchApply.lhs 103
+apply_to_slurpy_or_fail :: Patch -> Slurpy -> IO Slurpy
+apply_to_slurpy_or_fail p s =3D case withSlurpy s (apply [] False p) of
+                          Left err -> error err
+                          Right (s', ()) -> return s'
+                                    =

hunk ./Resolution.lhs 31
-import SlurpDirectory ( Slurpy, slurp, list_slurpy )
+import SlurpDirectory ( Slurpy, slurp, write_files )
hunk ./Resolution.lhs 38
-import External ( cloneTree, clonePaths )
+import External ( cloneTree )
+import PatchApply ( apply_to_slurpy_or_fail )
hunk ./Resolution.lhs 153
- (_, s) <- slurp_recorded_and_unrecorded "."
- former_dir <- getCurrentDirectory
- withTempDir "version1" $ \d1 -> do
-   clonePaths former_dir d1 (list_slurpy s)
-   setCurrentDirectory former_dir
-   withTempDir "ancestor" $ \da -> do
-     cloneTree d1 "."
-     apply [] False (invert p1)
+ (_, s1) <- slurp_recorded_and_unrecorded "."
+ sa <- apply_to_slurpy_or_fail (invert p1) s1
+ sm <- apply_to_slurpy_or_fail pmerged s1
+ s2 <- apply_to_slurpy_or_fail p2 sa
+ let nms =3D list_conflicted_files pmerged
+     nas =3D apply_to_filepaths False (invert pmerged) nms
+     n1s =3D apply_to_filepaths False p1 nas
+     n2s =3D apply_to_filepaths False p2 nas
+     ns =3D zip4 nas n1s n2s nms
+  in do
+   former_dir <- getCurrentDirectory
+   withTempDir "version1" $ \d1 -> do
+     write_files s1 n1s
hunk ./Resolution.lhs 167
-     withTempDir "cleanmerged" $ \dc -> do
-       cloneTree d1 "."
-       apply [] False pmerged
+     withTempDir "ancestor" $ \da -> do
+       write_files sa nas
hunk ./Resolution.lhs 171
-         cloneTree dc "."
+         write_files sm nms
hunk ./Resolution.lhs 173
-         withTempDir "version2" $ \d2 -> do
-           cloneTree da "."
-           apply [] False p2
-           let nms =3D list_conflicted_files pmerged
-               nas =3D apply_to_filepaths False (invert pmerged) nms
-               n1s =3D apply_to_filepaths False p1 nas
-               n2s =3D apply_to_filepaths False p2 nas
-               ns =3D zip4 nas n1s n2s nms
-             in do
+         withTempDir "cleanmerged" $ \dc -> do
+           cloneTree dm "."
+           setCurrentDirectory former_dir
+           withTempDir "version2" $ \d2 -> do
+             write_files s2 n2s
hunk ./Resolution.lhs 179
-             sm <- slurp dc
+             sc <- slurp dc
hunk ./Resolution.lhs 182
-             case smart_diff [] ftf sm sfixed of
+             case smart_diff [] ftf sc sfixed of
hunk ./SlurpDirectory.lhs 43
-                        SlurpMonad(..), withSlurpy
+                        SlurpMonad(..), withSlurpy, write_files
hunk ./SlurpDirectory.lhs 152
+
+
+write_file :: Slurpy -> FilePath -> IO ()
+write_file s fp =3D let fn =3D fp2fn fp in
+                    case withSlurpy s $ smReadFilePS fn of
+                     Left err -> error err
+                     Right (_, c) -> do
+                       ensureDirectories (super_name fn)
+                       mWriteFilePS fn c
+
+ensureDirectories :: WriteableDirectory m =3D> FileName -> m ()
+ensureDirectories d =3D do
+          isPar <- mDoesDirectoryExist d
+          if isPar =

+            then return ()
+            else ensureDirectories (super_name d) >> (mCreateDirectory d)
+
+write_files ::  Slurpy -> [FilePath] -> IO ()
+write_files s fps =3D mapM_ (write_file s) fps
+
+
+
}

Context:

[Added --store-in-memory option for diff
edwin.thomson at businesswebsoftware.com**20061006122802
 =

] =

[Test pull.pl, CREATE_DIR_ERROR: removed TODO now that directory name is pr=
inted in error message
Marnix Klooster <marnix.klooster at gmail.com>**20060304164033
 Also removes a superfluous (and erroneous) chdir statement, which tried to
 change to non-existing directory templ (last character was ell instead of =
one).
 =

 Also improves the description of this test.
] =

[remove TODO from pull.pl.
David Roundy <droundy at darcs.net>**20060805192700] =

[fixes in pull.pl.
David Roundy <droundy at darcs.net>**20060805221055
 The first fix avoids a false error that shows up because of identical
 timestamps.  The second verifies that revert -a doesn't prompt user.
] =

[add new obliterate test.
David Roundy <droundy at darcs.net>**20060806122536] =

[clean up docs on DarcsRepo format.
David Roundy <droundy at darcs.net>**20060808104321] =

[Read sftp batch file in from stdin (part of issue237).
Eric Kow <eric.kow at gmail.com>**20060812143113
 =

 Passing the batch file in from stdin allows for sftp to be used with
 password-based authentication.  According to the sftp user manual regardin=
g
 the -b switch:
   Since it lacks user interaction it should be
   used in conjunction with non-interactive authentication
 =

 Credit for this idea goes to Ori Avtalion.
 =

] =

[Extend runSSH function to accept argument for stdin.
Eric Kow <eric.kow at gmail.com>**20060812142932] =

[fail if replace token pattern contains spaces (issue231)
Tommy Pettersson <ptp at lysator.liu.se>**20060806110807
 It would otherwise create a badly formated patch in pending with unexpecte=
d
 results for subsequent commands.
] =

[fix negation of result in test
Tommy Pettersson <ptp at lysator.liu.se>**20060806104215
 Negation with ! "uses" the result and thus there is no "failure", so the
 script wouldn't have exit with failure.
] =

[add test that replace with spaces fail
Tommy Pettersson <ptp at lysator.liu.se>**20060806103033] =

[unset default author environment variables in test suite harness
Tommy Pettersson <ptp at lysator.liu.se>**20060805151210
 This makes it harder to accidently write tests that fail because no author
 is set.
] =

[set author in pull_two test so it doesn't hang
Tommy Pettersson <ptp at lysator.liu.se>**20060804181518] =

[add new test that triggers bug in refactoring.
David Roundy <droundy at darcs.net>**20060804103830] =

[make test external stay in its temp1 dir
Tommy Pettersson <ptp at lysator.liu.se>**20060804134139] =

[Do not run sftp with the -q flag (issue240).
Eric Kow <eric.kow at gmail.com>**20060811212030
 =

 sftp does not recognise it, and so any command which uses it fails.
 =

] =

[Refactor calls to ssh/scp/sftp.
Eric Kow <eric.kow at gmail.com>**20060706202509
 =

] =

[Extend test suite for patch matching.
Eric Kow <eric.kow at gmail.com>**20060513192501
 =

] =

[Implement help --match (issue91).
Eric Kow <eric.kow at gmail.com>**20060513185610
 =

 Also, refactor matching code in a way that encourages developers
 to document for help --match any new matchers they create.
 =

] =

[Replace dateparser.sh with more general match.pl for testing --match.
Eric Kow <eric.kow at gmail.com>**20060513104942
 =

] =

[Add tests for pristine error and quiet mode when removing a directory.
Eric Kow <eric.kow at gmail.com>**20060513100021] =

[Replace test rmdir.sh with rmdir.pl.
Eric Kow <eric.kow at gmail.com>**20060513043823] =

[remove some tabs from haskell source
Tommy Pettersson <ptp at lysator.liu.se>**20060730122505] =

[use FastPackeString when examining executable scripts in Get
Tommy Pettersson <ptp at lysator.liu.se>**20060729130645] =

[add some changelog entries
Tommy Pettersson <ptp at lysator.liu.se>**20060718152611] =

[Minor tweaks to list_authors.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20060720180602] =

[Fixed typo in documentation.
Michal Sojka <sojkam1 at fel.cvut.cz>**20060514095212] =

[Added elc and pyc to binaries.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20060713184214] =

[Run ssh/scp/sftp quietly.
Eric Kow <eric.kow at gmail.com>**20060707025245
 =

 This is useful for silencing Putty, and could also be for OpenSSH should
 we decide to stop redirecting to /dev/null.
 =

] =

[Added up links in web interface.
Peter Stuifzand <peter at stuifzand.com>**20060610082238
 Added a link to the 'projects' part of the cgi repository interface, so th=
at
 you go back to the project list.
] =

[Add a test suite for calling external programs.
Eric Kow <eric.kow at gmail.com>**20060521045407
 =

 For now this only includes a test for ssh (issue171).
 =

] =

[Suppress non-empty dir warning if Quiet.
Eric Kow <eric.kow at gmail.com>**20060513053456] =

[Add forgotten file umask.h.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20060423174844] =

[Add --umask to all commands that write to the current repository.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20060407195655] =

[Add option --umask.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20060407194552] =

[Actually switch umasks in withRepoLock.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20060407194202] =

[Implement withUMask.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20060407193312] =

[Add umask.c.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20060407193255] =

[Propagate opts to withRepoLock.
Juliusz Chroboczek <jch at pps.jussieu.fr>**20060325190622] =

[TAG 1.0.8
Tommy Pettersson <ptp at lysator.liu.se>**20060616160213] =

Patch bundle hash:
036d4345c6a1758a588aa9252e64fe8d8b29e30f

--=_--

.



More information about the darcs-devel mailing list