[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Monotone-commits-diffs] net.venge.monotone.issue-120: 98f8b25fff425876
From: |
code |
Subject: |
[Monotone-commits-diffs] net.venge.monotone.issue-120: 98f8b25fff425876e004776d691b9e0d26830661 |
Date: |
Sun, 20 Feb 2011 00:07:05 +0100 (CET) |
revision: 98f8b25fff425876e004776d691b9e0d26830661
date: 2011-01-26T20:19:08
author: Richard Hopkins <address@hidden>
branch: net.venge.monotone.issue-120
changelog:
propagate from branch 'net.venge.monotone' (head
6e0ec4d787c7fd98841d70714b06c1664e077139)
to branch 'net.venge.monotone.issue-120' (head
fc13d22f21a87c3a0f37d87a7fb8bbf667b65639)
manifest:
format_version "1"
new_manifest [a067cb90c47ad78eb2cb81ed2d694827dc6aa0e5]
old_revision [6e0ec4d787c7fd98841d70714b06c1664e077139]
patch "cmd_list.cc"
from [d5f1d76cb76151d303cda19a974fe5c86f806d70]
to [9d870ecf6461b873a0a90c0cfcc3e7f4eda17dd4]
old_revision [fc13d22f21a87c3a0f37d87a7fb8bbf667b65639]
patch "Makefile.am"
from [0c1e48ef9dfb72bc9f3ada23437e17c7fca73c18]
to [5e7e8b5f2ae55ef882fc78e814b6753381efbfe1]
patch "contrib/display_branches.lua"
from [8d16d67c82652534969e81a9062f019d68c584bf]
to [5b9602203db9c299e7821b18078786a8a7fe5574]
patch "database.cc"
from [1ca31c776dd4882e3c783f80dbc20e351e5fd908]
to [ade943af074000527e1f1f34d8afb0ad0f8a2bc9]
patch "options_list.hh"
from [548a7192e2a4dd39d69fd33d13cc0e28d6f09c26]
to [4af93dbcc45e76d732d073ced7ce21d20472cd00]
patch "po/sv.po"
from [5803557f4c06071a4779b86691548795481d0587]
to [96e9d971fbb477aca03f41896a6f4376f0d43054]
============================================================
--- cmd_list.cc d5f1d76cb76151d303cda19a974fe5c86f806d70
+++ cmd_list.cc 9d870ecf6461b873a0a90c0cfcc3e7f4eda17dd4
@@ -12,6 +12,8 @@
#include "safe_map.hh"
#include <utility>
#include <iostream>
+#include <sstream>
+#include <set>
#include <iterator>
#include <boost/tuple/tuple.hpp>
@@ -45,6 +47,7 @@ using std::ostream;
using std::sort;
using std::copy;
using std::ostream;
+using std::ostringstream;
using std::string;
using std::vector;
@@ -853,51 +856,109 @@ CMD(changed, "changed", "", CMD_REF(list
"",
options::opts::depth | options::opts::exclude)
{
+ roster_t new_roster;
+ parent_map old_rosters;
+ revision_t rev;
+ temp_node_id_source nis;
+
database db(app);
+ project_t project(db);
workspace work(app);
- parent_map parents;
- roster_t new_roster;
- temp_node_id_source nis;
+ work.get_parent_rosters(db, old_rosters);
work.get_current_roster_shape(db, nis, new_roster);
- work.update_current_roster_from_filesystem(new_roster);
- work.get_parent_rosters(db, parents);
-
node_restriction mask(args_to_paths(args),
args_to_paths(app.opts.exclude),
app.opts.depth,
- parents, new_roster, ignored_file(work));
+ old_rosters, new_roster, ignored_file(work));
- revision_t rrev;
- make_restricted_revision(parents, new_roster, mask, rrev);
+ work.update_current_roster_from_filesystem(new_roster, mask);
+ make_restricted_revision(old_rosters, new_roster, mask, rev);
- // to be printed sorted, with duplicates removed
- set<file_path> print_paths;
+ revision_id rid;
+ calculate_ident(rev, rid);
- for (edge_map::const_iterator i = rrev.edges.begin();
- i != rrev.edges.end(); i++)
+ set<file_path> output_files;
+
+ // TODO: Refactor this method and promote these locals to parameters
+ // We can then use the method to provide us with "mtn ls added" for
+ // example
+ bool output_dropped = true;
+ bool output_renamed = true;
+ bool output_added = true;
+ bool output_patched = true;
+ bool output_attrs = true;
+
+ for (edge_map::const_iterator i = rev.edges.begin(); i != rev.edges.end(); ++i)
{
- set<node_id> nodes;
- roster_t const & old_roster
- = *safe_get(parents, edge_old_revision(i)).first;
- select_nodes_modified_by_cset(edge_changes(i),
- old_roster, new_roster, nodes);
+ revision_id parent = edge_old_revision(*i);
+ cset const & cs = edge_changes(*i);
- for (set<node_id>::const_iterator i = nodes.begin(); i != nodes.end();
- ++i)
+ if (output_dropped)
{
- file_path p;
- if (new_roster.has_node(*i))
- new_roster.get_name(*i, p);
- else
- old_roster.get_name(*i, p);
- print_paths.insert(p);
+ for (set<file_path>::const_iterator i = cs.nodes_deleted.begin();
+ i != cs.nodes_deleted.end(); ++i)
+ output_files.insert(*i);
}
+
+ if (output_renamed)
+ {
+ for (map<file_path, file_path>::const_iterator
+ i = cs.nodes_renamed.begin();
+ i != cs.nodes_renamed.end(); ++i)
+ output_files.insert(i->second);
+ }
+
+ if (output_added)
+ {
+ for (set<file_path>::const_iterator i = cs.dirs_added.begin();
+ i != cs.dirs_added.end(); ++i)
+ output_files.insert(*i);
+
+ for (map<file_path, file_id>::const_iterator i = cs.files_added.begin();
+ i != cs.files_added.end(); ++i)
+ output_files.insert(i->first);
+ }
+
+ if (output_patched)
+ {
+ for (map<file_path, pair<file_id, file_id> >::const_iterator
+ i = cs.deltas_applied.begin(); i != cs.deltas_applied.end(); ++i)
+ output_files.insert(i->first);
+ }
+
+ if (output_attrs)
+ {
+ for (map<pair<file_path, attr_key>, attr_value >::const_iterator
+ i = cs.attrs_set.begin(); i != cs.attrs_set.end(); ++i)
+ output_files.insert(i->first.first);
+
+ // FIXME: naming here could not be more inconsistent
+ // the cset calls it attrs_cleared
+ // the command is attr drop
+ // here it is called unset
+ // the revision text uses attr clear
+
+ for (set<pair<file_path, attr_key> >::const_iterator
+ i = cs.attrs_cleared.begin(); i != cs.attrs_cleared.end(); ++i)
+ output_files.insert(i->first);
+ }
}
- copy(print_paths.begin(), print_paths.end(),
- ostream_iterator<file_path>(cout, "\n"));
+ for (set<file_path>::const_iterator i = output_files.begin();
+ i != output_files.end(); ++i)
+ {
+ ostringstream tmp;
+ external summary_external;
+
+ tmp << *i;
+ utf8 summary = utf8(tmp.str(), origin::internal);
+
+ utf8_to_system_best_effort(summary, summary_external);
+
+ cout << summary_external << "\n";
+ }
}
namespace
============================================================
--- Makefile.am 0c1e48ef9dfb72bc9f3ada23437e17c7fca73c18
+++ Makefile.am 5e7e8b5f2ae55ef882fc78e814b6753381efbfe1
@@ -351,7 +351,7 @@ EXTRA_DIST = \
\
contrib cygwin examples mac notes visualc
-MAKEINFOFLAGS=-I $(top_builddir)
+AM_MAKEINFOFLAGS=-I $(top_builddir)
monotone.info: monotone.texi version.texi std_hooks.lua $(TEXI_FRAGMENTS)
============================================================
--- database.cc 1ca31c776dd4882e3c783f80dbc20e351e5fd908
+++ database.cc ade943af074000527e1f1f34d8afb0ad0f8a2bc9
@@ -2848,7 +2848,7 @@ database::get_revision(revision_id const
imp->fetch(res, one_col, one_row,
query("SELECT data FROM revisions WHERE id = ?")
% blob(id.inner()()));
-
+ I(res.size() == 1);
gzip<data> gzdata(res[0][0], origin::database);
data rdat;
decode_gzip(gzdata,rdat);
============================================================
--- po/sv.po 5803557f4c06071a4779b86691548795481d0587
+++ po/sv.po 96e9d971fbb477aca03f41896a6f4376f0d43054
@@ -157,8 +157,8 @@ msgstr ""
msgstr ""
"Project-Id-Version: monotone 0.26pre1\n"
"Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2011-01-20 14:26+0100\n"
-"PO-Revision-Date: 2011-01-21 15:13+0100\n"
+"POT-Creation-Date: 2011-01-23 19:58+0100\n"
+"PO-Revision-Date: 2011-01-23 19:59+0100\n"
"Last-Translator: Joel Rosdahl <address@hidden>\n"
"Language-Team: Richard Levitte <address@hidden>\n"
"Language: \n"
@@ -968,7 +968,7 @@ msgstr "Ãppnar en koppling till en serv
msgstr "Ãppnar en koppling till en server, typ 'automate stdio'"
#: cmd_netsync.cc:122 cmd_netsync.cc:225
-#, fuzzy, c-format
+#, c-format
msgid ""
"No database given; assuming '%s' database. This means that\n"
"we can't verify the server key, because we have no record of\n"
@@ -1306,12 +1306,12 @@ msgstr "Visa vilka databaser som hantera
msgid "Lists managed databases and their known workspaces"
msgstr "Visa vilka databaser som hanteras och deras kända arbetskopior"
-#: cmd_list.cc:684 database.cc:4956
+#: cmd_list.cc:684 database.cc:4970
#, c-format
msgid "could not query default database locations"
msgstr "ingen standardkatalog för databaser finns definierad"
-#: cmd_list.cc:688 database.cc:5034
+#: cmd_list.cc:688 database.cc:5048
#, c-format
msgid "could not query default database glob"
msgstr "kunde inte fråga efter standardglobben för databaser"
@@ -2602,8 +2602,8 @@ msgstr ""
"SÃKVÃG är angiven."
#: cmd_diff_log.cc:992
-msgid "list selected revision history"
-msgstr "visa vald revisionshistoria"
+msgid "Lists the selected revision history"
+msgstr "Visa vald revisionshistoria"
#: cmd_ws_commit.cc:179
#, c-format
@@ -4632,17 +4632,17 @@ msgstr "tillitsfunktionen ogillar %d sig
msgid "trust function disliked %d signers of %s cert on revision %s"
msgstr "tillitsfunktionen ogillar %d signerare av certet %s i revisionen %s"
-#: database.cc:4798 database.cc:4933
+#: database.cc:4805 database.cc:4947
#, c-format
msgid "no database specified"
msgstr "ingen databas angiven"
-#: database.cc:4811
+#: database.cc:4818
#, c-format
msgid "database %s does not exist"
msgstr "databasen %s finns inte"
-#: database.cc:4819
+#: database.cc:4826
#, c-format
msgid ""
"%s is a workspace, not a database\n"
@@ -4651,17 +4651,17 @@ msgstr ""
"%s är en katalog, inte en databas\n"
"(menade du %s?)"
-#: database.cc:4823
+#: database.cc:4830
#, c-format
msgid "%s is a directory, not a database"
msgstr "%s är en katalog, inte en databas"
-#: database.cc:4831
+#: database.cc:4838
#, c-format
msgid "database %s already exists"
msgstr "databasen %s finns redan"
-#: database.cc:4836
+#: database.cc:4843
#, c-format
msgid ""
"existing (possibly stale) journal file '%s' has same stem as new database "
@@ -4672,32 +4672,32 @@ msgstr ""
"databasen '%s'\n"
"avbryter skapandet av databasen"
-#: database.cc:4991
+#: database.cc:5005
#, c-format
msgid "the database alias '%s' has multiple ambiguous expansions:"
msgstr "databasaliaset '%s' har flera motsägelsefulla uttydningar:"
-#: database.cc:5014
+#: database.cc:5028
#, c-format
msgid "could not query default database alias"
msgstr "kunde inte fråga efter databasens standardalias"
-#: database.cc:5016
+#: database.cc:5030
#, c-format
msgid "using default database '%s'"
msgstr "använder standarddatabasen '%s'"
-#: database.cc:5026
+#: database.cc:5040
#, c-format
msgid "invalid database alias '%s': does not start with a colon"
msgstr "ogiltigt databasalias '%s': startar inte med ett kolon"
-#: database.cc:5030
+#: database.cc:5044
#, c-format
msgid "invalid database alias '%s': must not be empty"
msgstr "ogiltigt databasalias '%s': får inte vara tomt"
-#: database.cc:5046
+#: database.cc:5060
#, c-format
msgid "invalid database alias '%s': does contain invalid characters"
msgstr "ogiltigt databasalias '%s': innehåller ogiltiga tecken"
@@ -5318,47 +5318,57 @@ msgstr "räknaren query-in-flight blev f
msgid "underflow on query-in-flight counter"
msgstr "räknaren query-in-flight blev för låg"
-#: netsync.cc:112 netsync.cc:217
+#: netsync.cc:112 netsync.cc:219
#, c-format
msgid "connecting to %s"
msgstr "ansluter till %s"
-#: netsync.cc:161
+#: netsync.cc:113
#, c-format
+msgid " include pattern %s"
+msgstr " inkluderat mönster %s"
+
+#: netsync.cc:114
+#, c-format
+msgid " exclude pattern %s"
+msgstr " exkluderat mönster %s"
+
+#: netsync.cc:163
+#, c-format
msgid "processing failure while talking to peer %s, disconnecting"
msgstr "tar hand om misslyckande i samtal med %s, kopplar ifrån"
-#: netsync.cc:169
+#: netsync.cc:171
#, c-format
msgid "timed out waiting for I/O with peer %s, disconnecting"
msgstr "att vänta på I/O från %s tog för lång tid, kopplar ifrån"
-#: netsync.cc:186
+#: netsync.cc:188
#, c-format
msgid "successful exchange with %s"
msgstr "lyckat utbyte med %s"
-#: netsync.cc:192
+#: netsync.cc:194
#, c-format
msgid "peer %s disconnected after we informed them of error"
msgstr "%s kopplade ifrån efter att vi informerade den om ett fel"
-#: netsync.cc:198
+#: netsync.cc:200
#, c-format
msgid "I/O failure while talking to peer %s, disconnecting"
msgstr "I/O-fel i samtal med %s, kopplar ifrån"
-#: netsync.cc:244
+#: netsync.cc:246
#, c-format
msgid "Network error: %s"
msgstr "Nätverksfel: %s"
-#: netsync.cc:358
+#: netsync.cc:360
#, c-format
msgid "beginning service on %s"
msgstr "startar tjänst på %s"
-#: netsync.cc:417 netsync.cc:421
+#: netsync.cc:419 netsync.cc:423
#, c-format
msgid "network error: %s"
msgstr "nätverksfel: %s"
@@ -7754,11 +7764,11 @@ msgid ""
#: options_list.hh:220
msgid ""
-"automatically update the workspace, if it is clean and the base revision is "
-"a head of an affected branch"
+"automatically update the workspace, if it was at a head and the command "
+"creates a new head"
msgstr ""
-"uppdaterar automatiskt arbetskopian om den är ren från ändringar och "
-"basrevisionen är ett huvud i den påverkade grenen"
+"uppdaterar automatiskt arbetskopian om basrevisionen är ett huvud i den "
+"påverkade grenen och uppdateringen skapar ett nytt huvud"
#: options_list.hh:225
msgid "address:port to listen on (default :4691)"
============================================================
--- options_list.hh 548a7192e2a4dd39d69fd33d13cc0e28d6f09c26
+++ options_list.hh 4af93dbcc45e76d732d073ced7ce21d20472cd00
@@ -217,7 +217,7 @@ SIMPLE_OPTION(auto_update, "update/no-up
gettext_noop("block size in bytes for \"automate stdio\" output"))
SIMPLE_OPTION(auto_update, "update/no-update", bool,
- gettext_noop("automatically update the workspace, if it was at a head and the"
+ gettext_noop("automatically update the workspace, if it was at a head and the "
"command creates a new head"))
OPTSET(bind_opts)
============================================================
--- contrib/display_branches.lua 8d16d67c82652534969e81a9062f019d68c584bf
+++ contrib/display_branches.lua 5b9602203db9c299e7821b18078786a8a7fe5574
@@ -7,26 +7,31 @@ do
do
netsync_branches = {}
- function RL_note_netsync_cert_received(rev_id,key,name,value,nonce)
+ function RL_note_netsync_cert_received(direction,rev_id,key,name,value,nonce)
if name == "branch" then
- if netsync_branches[nonce][value] == nil then
- netsync_branches[nonce][value] = 1
+ if netsync_branches[direction][nonce][value] == nil then
+ netsync_branches[direction][nonce][value] = 1
else
- netsync_branches[nonce][value] = netsync_branches[nonce][value] + 1
+ netsync_branches[direction][nonce][value] =
+ netsync_branches[direction][nonce][value] + 1
end
end
end
notifier = {
- start =
+ ["start"] =
function(session_id,...)
- netsync_branches[session_id] = {}
+ netsync_branches["received"] = {}
+ netsync_branches["sent"] = {}
+ netsync_branches["received"][session_id] = {}
+ netsync_branches["sent"][session_id] = {}
return "continue",nil
end,
- revision_received =
+ ["revision_received"] =
function(new_id,revision,certs,session_id)
for _, item in pairs(certs) do
- RL_note_netsync_cert_received(new_id,
+ RL_note_netsync_cert_received("received",
+ new_id,
item.key,
item.name,
item.value,
@@ -34,26 +39,65 @@ do
end
return "continue",nil
end,
- cert_received =
+ ["revision_sent"] =
+ function(new_id,revision,certs,session_id)
+ for _, item in pairs(certs) do
+ RL_note_netsync_cert_received("sent",
+ new_id,
+ item.key,
+ item.name,
+ item.value,
+ session_id)
+ end
+ return "continue",nil
+ end,
+ ["cert_received"] =
function(rev_id,key,name,value,session_id)
- RL_note_netsync_cert_received(rev_id,
+ RL_note_netsync_cert_received("received",
+ rev_id,
key,name,value,
session_id)
return "continue",nil
end,
- ["end"] = function(session_id)
- local first = true
- for item, amount in pairs(netsync_branches[session_id])
- do
- if first then
- io.stderr:write("Affected branches:\n")
- first = false
- end
- io.stderr:write(" ",item," (",amount,")\n")
- end
- netsync_branches[session_id] = nil
- return "continue",nil
- end
+ ["cert_sent"] =
+ function(rev_id,key,name,value,session_id)
+ RL_note_netsync_cert_received("sent",
+ rev_id,
+ key,name,value,
+ session_id)
+ return "continue",nil
+ end,
+ ["end"] =
+ function(session_id,status)
+ -- only try to display results if we got
+ -- at least partial contents
+ if status > 211 then
+ return "continue",nil
+ end
+
+ local first = true
+ for item, amount in pairs(netsync_branches["received"][session_id])
+ do
+ if first then
+ io.stderr:write("Received data on branches:\n")
+ first = false
+ end
+ io.stderr:write(" ",item," (",amount,")\n")
+ end
+ netsync_branches["received"][session_id] = nil
+
+ first = true
+ for item, amount in pairs(netsync_branches["sent"][session_id])
+ do
+ if first then
+ io.stderr:write("Sent data on branches:\n")
+ first = false
+ end
+ io.stderr:write(" ",item," (",amount,")\n")
+ end
+ netsync_branches["sent"][session_id] = nil
+ return "continue",nil
+ end
}
local v,m = push_hook_functions(notifier)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Monotone-commits-diffs] net.venge.monotone.issue-120: 98f8b25fff425876e004776d691b9e0d26830661,
code <=