|
|
@@ -29,6 +29,9 @@
|
|
|
just "doing anonymous pull" as mtn(1) doesn't have to teach people.
|
|
|
That's for what the documentation is for.
|
|
|
|
|
|
+ o cosmetics-stat:
|
|
|
+ The workspace top-level directory is shown as "" instead of nothing.
|
|
|
+
|
|
|
o cosmetics-diff-and-log:
|
|
|
This cosmetically "improves" the output of "mtn diff" and "mtn
|
|
|
log". For "mtn diff" The output of "mtn diff" now uses a separator
|
|
|
@@ -47,14 +50,23 @@
|
|
|
align with the "svn diff" and "cvs diff" outputs. This also helps
|
|
|
patch(1) to clearly identify the file to patch.
|
|
|
|
|
|
+ o extra-commands:
|
|
|
+ This adds "mtn fuse", "mtn conflicts" and "mtn revision" commands.
|
|
|
+ They are all simple but convenient Lua wrappers.
|
|
|
+
|
|
|
+ o dot-mtn-message:
|
|
|
+ Support a ".mtn-message" file in the root-directory as a template
|
|
|
+ for the commit messages.
|
|
|
+
|
|
|
Ralf S. Engelschall
|
|
|
rse@engelschall.com
|
|
|
www.engelschall.com
|
|
|
|
|
|
-============================================================
|
|
|
---- app_state.cc 74425b52934112d6f23c222e36516a69aee2bb29
|
|
|
-+++ app_state.cc cc9111317d701076b496c80734ae89ab7c6e3741
|
|
|
-@@ -141,13 +141,24 @@ app_state::create_workspace(system_path
|
|
|
+===================================================================
|
|
|
+Index: app_state.cc
|
|
|
+--- app_state.cc 6be9949e433ff6166fd030b34d8eb2d3e18c10b6
|
|
|
++++ app_state.cc ce1cdaffff8c14261ab0a22a16571a0737532bbb
|
|
|
+@@ -138,13 +138,24 @@ app_state::create_workspace(system_path
|
|
|
go_to_workspace(new_dir);
|
|
|
mark_std_paths_used();
|
|
|
|
|
|
@@ -79,9 +91,10 @@
|
|
|
mkdir_p(bookkeeping_root);
|
|
|
|
|
|
make_branch_sticky();
|
|
|
-============================================================
|
|
|
---- cmd_diff_log.cc b95267396272bf66f1c4c17b19659cc4e734213a
|
|
|
-+++ cmd_diff_log.cc 070f04c88e5a724545d48c3669d78fa2394987f3
|
|
|
+===================================================================
|
|
|
+Index: cmd_diff_log.cc
|
|
|
+--- cmd_diff_log.cc bd55c33e185979f03a6e5fe2d32188fac1dc0676
|
|
|
++++ cmd_diff_log.cc 86f22362b1640761711b1ca75a1a63f19a5b1a1c
|
|
|
@@ -96,6 +96,27 @@ print_indented_set(ostream & os,
|
|
|
set<file_path> const & s,
|
|
|
size_t max_cols)
|
|
|
@@ -164,7 +177,7 @@
|
|
|
output << patch_sep << '\n';
|
|
|
|
|
|
app.db.get_file_version(delta_entry_src(i), f_old);
|
|
|
-@@ -493,6 +530,9 @@ CMD(diff, "diff", "", CMD_REF(informativ
|
|
|
+@@ -499,6 +536,9 @@ CMD(diff, "diff", "", CMD_REF(informativ
|
|
|
data summary;
|
|
|
write_cset(included, summary);
|
|
|
|
|
|
@@ -174,7 +187,7 @@
|
|
|
vector<string> lines;
|
|
|
split_into_lines(summary(), lines);
|
|
|
cout << "#\n";
|
|
|
-@@ -508,6 +548,9 @@ CMD(diff, "diff", "", CMD_REF(informativ
|
|
|
+@@ -514,6 +554,9 @@ CMD(diff, "diff", "", CMD_REF(informativ
|
|
|
cout << "# " << _("no changes") << '\n';
|
|
|
}
|
|
|
cout << "#\n";
|
|
|
@@ -184,7 +197,7 @@
|
|
|
|
|
|
if (app.opts.diff_format == external_diff)
|
|
|
{
|
|
|
-@@ -871,7 +914,11 @@ CMD(log, "log", "", CMD_REF(informative)
|
|
|
+@@ -877,7 +920,11 @@ CMD(log, "log", "", CMD_REF(informative)
|
|
|
else
|
|
|
{
|
|
|
out << string(65, '-') << '\n';
|
|
|
@@ -196,7 +209,7 @@
|
|
|
|
|
|
changes_summary csum;
|
|
|
|
|
|
-@@ -886,12 +933,21 @@ CMD(log, "log", "", CMD_REF(informative)
|
|
|
+@@ -892,12 +939,21 @@ CMD(log, "log", "", CMD_REF(informative)
|
|
|
|
|
|
for (set<revision_id>::const_iterator anc = ancestors.begin();
|
|
|
anc != ancestors.end(); ++anc)
|
|
|
@@ -218,7 +231,7 @@
|
|
|
|
|
|
if (!app.opts.no_files && !csum.cs.empty())
|
|
|
{
|
|
|
-@@ -901,7 +957,11 @@ CMD(log, "log", "", CMD_REF(informative)
|
|
|
+@@ -907,7 +963,11 @@ CMD(log, "log", "", CMD_REF(informative)
|
|
|
}
|
|
|
|
|
|
log_certs(out, app, rid, changelog_name, "ChangeLog: ", true);
|
|
|
@@ -230,10 +243,11 @@
|
|
|
}
|
|
|
|
|
|
if (app.opts.diffs)
|
|
|
-============================================================
|
|
|
---- cmd_netsync.cc ba4c038a24ffe3ba8951da91b859c426c5876571
|
|
|
-+++ cmd_netsync.cc 53c66eef7a2cf3c72f235095f960e0add60c8911
|
|
|
-@@ -180,7 +180,11 @@ CMD(pull, "pull", "", CMD_REF(network),
|
|
|
+===================================================================
|
|
|
+Index: cmd_netsync.cc
|
|
|
+--- cmd_netsync.cc 5f1360b0446a86c6e9fc646141a54e6e5a20dbe8
|
|
|
++++ cmd_netsync.cc f8a1dbbcdfd3bd36740964c0095f6128ff2ba7ab
|
|
|
+@@ -179,7 +179,11 @@ CMD(pull, "pull", "", CMD_REF(network),
|
|
|
find_key_if_needed(addr, include_pattern, exclude_pattern, app, false);
|
|
|
|
|
|
if (app.opts.signing_key() == "")
|
|
|
@@ -243,9 +257,9 @@
|
|
|
P(F("doing anonymous pull; use -kKEYNAME if you need authentication"));
|
|
|
+#endif
|
|
|
|
|
|
- run_netsync_protocol(client_voice, sink_role, addr,
|
|
|
- include_pattern, exclude_pattern, app);
|
|
|
-@@ -272,7 +276,11 @@ CMD(clone, "clone", "", CMD_REF(network)
|
|
|
+ std::list<utf8> uris;
|
|
|
+ uris.push_back(addr);
|
|
|
+@@ -277,7 +281,11 @@ CMD(clone, "clone", "", CMD_REF(network)
|
|
|
app.create_workspace(workspace_dir);
|
|
|
|
|
|
if (internal_db)
|
|
|
@@ -257,7 +271,7 @@
|
|
|
else
|
|
|
app.set_database(app.opts.dbname);
|
|
|
|
|
|
-@@ -300,7 +308,11 @@ CMD(clone, "clone", "", CMD_REF(network)
|
|
|
+@@ -299,7 +307,11 @@ CMD(clone, "clone", "", CMD_REF(network)
|
|
|
app, false);
|
|
|
|
|
|
if (app.opts.signing_key() == "")
|
|
|
@@ -269,10 +283,26 @@
|
|
|
|
|
|
if (!app.db.var_exists(default_include_pattern_key)
|
|
|
|| app.opts.set_default)
|
|
|
-============================================================
|
|
|
---- cmd_ws_commit.cc b29545c7fd88a94d14d3b6955505e7e179c70d73
|
|
|
-+++ cmd_ws_commit.cc 4c9aa3fac75398d68f9f23838ee5559614694df5
|
|
|
-@@ -1337,7 +1337,11 @@ CMD_NO_WORKSPACE(import, "import", "", C
|
|
|
+===================================================================
|
|
|
+Index: cmd_ws_commit.cc
|
|
|
+--- cmd_ws_commit.cc 8321ee742a65e2ebaf58c328bdf6bdda11c8f21c
|
|
|
++++ cmd_ws_commit.cc 9a5206ea33d8580755038d375e7ca7779dc69877
|
|
|
+@@ -66,7 +66,14 @@ revision_summary(revision_t const & rev,
|
|
|
+
|
|
|
+ for (set<file_path>::const_iterator i = cs.dirs_added.begin();
|
|
|
+ i != cs.dirs_added.end(); ++i)
|
|
|
++#if defined(RSE) /* cosmetics-stat */
|
|
|
++ if ((*i) == file_path())
|
|
|
++ out += (F(" added \"\"")).str() += '\n';
|
|
|
++ else
|
|
|
++ out += (F(" added %s") % *i).str() += '\n';
|
|
|
++#else
|
|
|
+ out += (F(" added %s") % *i).str() += '\n';
|
|
|
++#endif
|
|
|
+
|
|
|
+ for (map<file_path, file_id>::const_iterator i = cs.files_added.begin();
|
|
|
+ i != cs.files_added.end(); ++i)
|
|
|
+@@ -1349,7 +1356,11 @@ CMD_NO_WORKSPACE(import, "import", "", C
|
|
|
catch (...)
|
|
|
{
|
|
|
// clean up before rethrowing
|
|
|
@@ -284,10 +314,11 @@
|
|
|
throw;
|
|
|
}
|
|
|
|
|
|
-============================================================
|
|
|
---- diff_patch.cc 943b5d68699b7ae6e06c5f335d8445cb961dabff
|
|
|
-+++ diff_patch.cc 318048c061524bb07d579c863722aa8bdd95b159
|
|
|
-@@ -1319,6 +1319,9 @@ make_diff(string const & filename1,
|
|
|
+===================================================================
|
|
|
+Index: diff_patch.cc
|
|
|
+--- diff_patch.cc 2016526a3148b6c23a04dd3c50b1af6f5f70a2fd
|
|
|
++++ diff_patch.cc e634a994222ce41429f90f12c19b23c7782013d5
|
|
|
+@@ -1324,6 +1324,9 @@ make_diff(string const & filename1,
|
|
|
{
|
|
|
case unified_diff:
|
|
|
{
|
|
|
@@ -297,7 +328,7 @@
|
|
|
ost << "--- " << filename1 << '\t' << id1 << '\n';
|
|
|
ost << "+++ " << filename2 << '\t' << id2 << '\n';
|
|
|
|
|
|
-@@ -1328,6 +1331,9 @@ make_diff(string const & filename1,
|
|
|
+@@ -1333,6 +1336,9 @@ make_diff(string const & filename1,
|
|
|
}
|
|
|
case context_diff:
|
|
|
{
|
|
|
@@ -307,7 +338,8 @@
|
|
|
ost << "*** " << filename1 << '\t' << id1 << '\n';
|
|
|
ost << "--- " << filename2 << '\t' << id2 << '\n';
|
|
|
|
|
|
-============================================================
|
|
|
+===================================================================
|
|
|
+Index: file_io.cc
|
|
|
--- file_io.cc 358fb964dc42e7f936a136342b93bb3a4744d1b3
|
|
|
+++ file_io.cc 6b452acaa58ca24fa5611ea3e6e82e83a7cf7552
|
|
|
@@ -398,16 +398,36 @@ write_data(file_path const & path, data
|
|
|
@@ -347,10 +379,11 @@
|
|
|
}
|
|
|
|
|
|
void
|
|
|
-============================================================
|
|
|
---- lua_hooks.cc 1d95c581d5880c74fd9c941fd69e2564d624d2e2
|
|
|
-+++ lua_hooks.cc cf4f72def48ec7c7a4847342365971ed356376ac
|
|
|
-@@ -144,7 +144,11 @@ lua_hooks::workspace_rcfilename(bookkeep
|
|
|
+===================================================================
|
|
|
+Index: lua_hooks.cc
|
|
|
+--- lua_hooks.cc e61801cae30ad803e68f8419729619159719137a
|
|
|
++++ lua_hooks.cc 90e1266bafdac90484593fad2422ef2d3f6d4147
|
|
|
+@@ -162,7 +162,11 @@ lua_hooks::workspace_rcfilename(bookkeep
|
|
|
void
|
|
|
lua_hooks::workspace_rcfilename(bookkeeping_path & file)
|
|
|
{
|
|
|
@@ -362,10 +395,11 @@
|
|
|
}
|
|
|
|
|
|
|
|
|
-============================================================
|
|
|
---- monotone.cc 424f3537c4ae32633fe643e0e82bbb3b252722c7
|
|
|
-+++ monotone.cc c4cd82fb52df543069cdfe4ff574ae74ac8f3efa
|
|
|
-@@ -220,12 +220,28 @@ cpp_main(int argc, char ** argv)
|
|
|
+===================================================================
|
|
|
+Index: monotone.cc
|
|
|
+--- monotone.cc 38b648aa00e33cc5bd36114cd92ba9c04879290e
|
|
|
++++ monotone.cc b0d445153e03190779c99bc6da61cdcff5c7cdbf
|
|
|
+@@ -229,12 +229,28 @@ cpp_main(int argc, char ** argv)
|
|
|
if (!app.opts.dbname.empty())
|
|
|
app.db.set_filename(app.opts.dbname);
|
|
|
}
|
|
|
@@ -392,12 +426,13 @@
|
|
|
+ }
|
|
|
+#endif
|
|
|
|
|
|
- // stop here if they asked for help
|
|
|
- if (app.opts.help)
|
|
|
-============================================================
|
|
|
---- options_list.hh 54ee12e3dfb608ca3a4b9a64cc51a845fc4a0501
|
|
|
-+++ options_list.hh b451bb8d5c5614e3ceb9b597267f7faab287e1fc
|
|
|
-@@ -200,6 +200,24 @@ OPTION(diff_options, no_show_encloser, f
|
|
|
+ // at this point we allow a workspace (meaning search for it
|
|
|
+ // and if found read _MTN/options, but don't use the data quite
|
|
|
+===================================================================
|
|
|
+Index: options_list.hh
|
|
|
+--- options_list.hh e0359c1c2454708b66f9d7e6e613dc44953e1766
|
|
|
++++ options_list.hh a4ef1088dad69309db69320d223cf9c168769fc5
|
|
|
+@@ -178,6 +178,24 @@ OPTION(diff_options, no_show_encloser, f
|
|
|
no_show_encloser = true;
|
|
|
}
|
|
|
#endif
|
|
|
@@ -422,10 +457,11 @@
|
|
|
|
|
|
OPT(diffs, "diffs", bool, false, gettext_noop("print diffs along with logs"))
|
|
|
#ifdef option_bodies
|
|
|
-============================================================
|
|
|
---- paths.cc 9be0b0ca30c8a3bb03e47ee4bf021f807bf2edef
|
|
|
-+++ paths.cc ef10a0dff0f701fee6a9eb1b94fc2767882fe1b5
|
|
|
-@@ -230,7 +230,11 @@ in_bookkeeping_dir(string const & path)
|
|
|
+===================================================================
|
|
|
+Index: paths.cc
|
|
|
+--- paths.cc d850c3efae62041b8003589817387e5877f63b01
|
|
|
++++ paths.cc 30e8e5ea486bbbda2344474f7bfa86f0b152c438
|
|
|
+@@ -226,7 +226,11 @@ in_bookkeeping_dir(string const & path)
|
|
|
static inline bool
|
|
|
in_bookkeeping_dir(string const & path)
|
|
|
{
|
|
|
@@ -437,7 +473,7 @@
|
|
|
return false;
|
|
|
if (path.size() == 1 || (path[1] != 'M' && path[1] != 'm'))
|
|
|
return false;
|
|
|
-@@ -916,6 +920,9 @@ find_and_go_to_workspace(string const &
|
|
|
+@@ -919,6 +923,9 @@ find_and_go_to_workspace(string const &
|
|
|
// first look for the current name of the bookkeeping directory.
|
|
|
// if we don't find it, look for it under the old name, so that
|
|
|
// migration has a chance to work.
|
|
|
@@ -447,12 +483,13 @@
|
|
|
if (!find_bookdir(root, bookkeeping_root_component, current, removed))
|
|
|
if (!find_bookdir(root, old_bookkeeping_root_component, current, removed))
|
|
|
return false;
|
|
|
-============================================================
|
|
|
---- paths.hh adf4ce1cbc60b1f05fb4555178f985648d0bf2c5
|
|
|
-+++ paths.hh 05e238ff3f0a98d90402bf5124f5d591bb0cf56a
|
|
|
-@@ -320,6 +320,15 @@ extern path_component const old_bookkeep
|
|
|
+===================================================================
|
|
|
+Index: paths.hh
|
|
|
+--- paths.hh f37bdd30f00c3448268723a701924ca5b9450891
|
|
|
++++ paths.hh 9aa55788e3a3b521f75a5c4d1e318d9dc97cdd40
|
|
|
+@@ -325,6 +325,15 @@ private:
|
|
|
// for migration
|
|
|
- extern path_component const old_bookkeeping_root_component;
|
|
|
+ #define old_bookkeeping_root_component (path_component("MT"))
|
|
|
|
|
|
+#if defined(RSE) /* alt-book-keeping-root */
|
|
|
+#ifndef MTN_ALT_BKROOT
|
|
|
@@ -466,7 +503,8 @@
|
|
|
// this will always be an absolute path
|
|
|
class system_path : public any_path
|
|
|
{
|
|
|
-============================================================
|
|
|
+===================================================================
|
|
|
+Index: roster_merge.cc
|
|
|
--- roster_merge.cc 5cbf793f50cf62a073ce837d337569d4ddb9475b
|
|
|
+++ roster_merge.cc 2a0fa3fcf1d7fb60f0fdca0238d9bdbfc34cb1a1
|
|
|
@@ -607,6 +607,20 @@ roster_merge(roster_t const & left_paren
|
|
|
@@ -490,9 +528,124 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-============================================================
|
|
|
---- work.cc d602424dc046f080220d23b5dc663b93b573284a
|
|
|
-+++ work.cc 59a421adeac627d5e3591c39e2334c95be62ccff
|
|
|
+===================================================================
|
|
|
+Index: std_hooks.lua
|
|
|
+--- std_hooks.lua a53348ca15431cc67266c65e6215640f6f55eee7
|
|
|
++++ std_hooks.lua a22ecb0c807ba34a9c4a564fb0d86ce246e9e1c9
|
|
|
+@@ -284,6 +284,15 @@ function edit_comment(basetext, user_log
|
|
|
+ if user_log_message == "" or string.sub(user_log_message, -1) ~= "\n" then
|
|
|
+ tmp:write("\n")
|
|
|
+ end
|
|
|
++ -- #if defined(RSE) /* dot-mtn-message */
|
|
|
++ local template_log_message = read_contents_of_file(".mtn-message", "r")
|
|
|
++ if template_log_message ~= nil then
|
|
|
++ tmp:write(template_log_message)
|
|
|
++ if template_log_message == "" or string.sub(template_log_message, -1) ~= "\n" then
|
|
|
++ tmp:write("\n")
|
|
|
++ end
|
|
|
++ end
|
|
|
++ -- #endif
|
|
|
+ tmp:write(basetext)
|
|
|
+ io.close(tmp)
|
|
|
+
|
|
|
+@@ -1112,6 +1121,93 @@ end
|
|
|
+ return "socat"
|
|
|
+ end
|
|
|
+
|
|
|
++-- #if defined(RSE) /* extra-command */
|
|
|
++
|
|
|
++-- extra command: "mtn fuse REVISION"
|
|
|
++register_command(
|
|
|
++ "fuse", "REVISION",
|
|
|
++ "Fuse revision into workspace with conflict markers.",
|
|
|
++ "Fuse the specified revision into the current workspace by merging " ..
|
|
|
++ "the revision into the workspace while providing inline conflict " ..
|
|
|
++ "markers for manually resolving the conflicts in the workspace " ..
|
|
|
++ "before comitting the conflicts-resolved workspace as the new " ..
|
|
|
++ "merged revision.",
|
|
|
++ "command_fuse"
|
|
|
++)
|
|
|
++function command_fuse(revision)
|
|
|
++ if revision == nil then
|
|
|
++ io.stderr:write("mtn: fuse: ERROR: revision not given\n")
|
|
|
++ return
|
|
|
++ end
|
|
|
++ if program_exists_in_path("mtn") == 0 then
|
|
|
++ io.stderr:write("mtn: fuse: ERROR: require Monotone command \"mtn\" in PATH\n")
|
|
|
++ return
|
|
|
++ end
|
|
|
++ mtn_automate("get_option", "branch") -- make sure we have a valid workspace
|
|
|
++ local cmd =
|
|
|
++ "MTN_MERGE=diffutils " ..
|
|
|
++ "MTN_MERGE_DIFFUTILS=\"partial,diff3opts=-E\" " ..
|
|
|
++ "mtn " .. "merge_into_workspace " .. revision
|
|
|
++ local rc = execute("sh", "-c", cmd)
|
|
|
++ if rc ~= 0 then
|
|
|
++ io.stderr:write("mtn: fuse: ERROR: failed to execute command \"" .. cmd .. "\"\n")
|
|
|
++ end
|
|
|
++end
|
|
|
++
|
|
|
++-- extra command: "mtn conflicts"
|
|
|
++register_command(
|
|
|
++ "conflicts", "",
|
|
|
++ "Lists files in workspace containing conflict markers.",
|
|
|
++ "Lists all files in the current workspace containing the " ..
|
|
|
++ "conflict markers produced by GNU diffutils' \"diff3\" " ..
|
|
|
++ "command. This indicates still unresolved merge conflicts.",
|
|
|
++ "command_conflicts"
|
|
|
++)
|
|
|
++function command_conflicts()
|
|
|
++ if program_exists_in_path("egrep") == 0 then
|
|
|
++ io.stderr:write("mtn: conflicts: ERROR: require GNU grep command \"egrep\" in PATH\n")
|
|
|
++ return
|
|
|
++ end
|
|
|
++ mtn_automate("get_option", "branch") -- make sure we have a valid workspace
|
|
|
++ local rc = execute(
|
|
|
++ "egrep",
|
|
|
++ "--files-with-matches",
|
|
|
++ "--recursive",
|
|
|
++ "^(<<<<<<<|=======|>>>>>>>) ",
|
|
|
++ "."
|
|
|
++ )
|
|
|
++end
|
|
|
++
|
|
|
++-- extra command: "mtn rev[ision] REVISION [ANCESTOR-REVISION]"
|
|
|
++register_command(
|
|
|
++ "revision", "REVISION [ANCESTOR-REVISION]",
|
|
|
++ "Shows summary information about revision(s)",
|
|
|
++ "Shows summary information about a particular revision " ..
|
|
|
++ "(or a range of revisions in case an ancestor revision is also specified). " ..
|
|
|
++ "This is just a convenience wrapper command around \"mtn log --diffs\".",
|
|
|
++ "command_revision"
|
|
|
++)
|
|
|
++alias_command(
|
|
|
++ "revision",
|
|
|
++ "rev"
|
|
|
++)
|
|
|
++function command_revision(revision, ancestor)
|
|
|
++ if revision == nil then
|
|
|
++ io.stderr:write("mtn: revision: ERROR: no revision specified\n")
|
|
|
++ return
|
|
|
++ end
|
|
|
++ if ancestor == nil then
|
|
|
++ ancestor = revision
|
|
|
++ end
|
|
|
++ mtn_automate("get_option", "branch") -- make sure we have a valid workspace
|
|
|
++ execute("mtn", "log", "--diffs", "--no-graph", "--from", ancestor, "--to", revision)
|
|
|
++ if rc ~= 0 then
|
|
|
++ io.stderr:write("mtn: revision: ERROR: failed to execute\n")
|
|
|
++ end
|
|
|
++end
|
|
|
++
|
|
|
++-- #endif
|
|
|
++
|
|
|
+ -- Netsync notifiers are tables containing 5 functions:
|
|
|
+ -- start, revision_received, cert_received, pubkey_received and end
|
|
|
+ -- Those functions take exactly the same arguments as the corresponding
|
|
|
+===================================================================
|
|
|
+Index: work.cc
|
|
|
+--- work.cc 04389e4274f38d0b2bc866c6938d53bbda5e8a2f
|
|
|
++++ work.cc 6eefd2d6271215c56bf601ce08485a9f0cd88e25
|
|
|
@@ -53,28 +53,44 @@ get_revision_path(bookkeeping_path & m_p
|
|
|
static void
|
|
|
get_revision_path(bookkeeping_path & m_path)
|
|
|
@@ -538,7 +691,7 @@
|
|
|
L(FL("inodeprints path is %s") % ip_path);
|
|
|
}
|
|
|
|
|
|
-@@ -185,7 +201,11 @@ workspace::get_user_log_path(bookkeeping
|
|
|
+@@ -205,7 +221,11 @@ workspace::get_user_log_path(bookkeeping
|
|
|
void
|
|
|
workspace::get_user_log_path(bookkeeping_path & ul_path)
|
|
|
{
|
|
|
@@ -550,7 +703,7 @@
|
|
|
L(FL("user log path is %s") % ul_path);
|
|
|
}
|
|
|
|
|
|
-@@ -367,7 +387,11 @@ workspace::get_local_dump_path(bookkeepi
|
|
|
+@@ -387,7 +407,11 @@ workspace::get_local_dump_path(bookkeepi
|
|
|
void
|
|
|
workspace::get_local_dump_path(bookkeeping_path & d_path)
|
|
|
{
|
|
|
@@ -562,7 +715,7 @@
|
|
|
L(FL("local dump path is %s") % d_path);
|
|
|
}
|
|
|
|
|
|
-@@ -727,7 +751,11 @@ path_for_detached_nids()
|
|
|
+@@ -747,7 +771,11 @@ path_for_detached_nids()
|
|
|
static inline bookkeeping_path
|
|
|
path_for_detached_nids()
|
|
|
{
|
|
|
@@ -574,7 +727,7 @@
|
|
|
}
|
|
|
|
|
|
static inline bookkeeping_path
|
|
|
-@@ -1542,9 +1570,15 @@ workspace::perform_pivot_root(file_path
|
|
|
+@@ -1483,9 +1511,15 @@ workspace::perform_pivot_root(file_path
|
|
|
N(is_dir_t(new_roster.get_node(new_root)),
|
|
|
F("proposed new root directory '%s' is not a directory") % new_root);
|
|
|
{
|
|
|
@@ -590,7 +743,8 @@
|
|
|
}
|
|
|
|
|
|
{
|
|
|
-============================================================
|
|
|
+===================================================================
|
|
|
+Index: work_migration.cc
|
|
|
--- work_migration.cc 3d58c3332cd195309eacf5cc52d4e88ad66a6c81
|
|
|
+++ work_migration.cc f044e25cc757899f97d413f3fe109a9bafe73553
|
|
|
@@ -55,9 +55,18 @@ get_ws_format()
|