couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jan Lehnardt <...@apache.org>
Subject Re: svn commit: r774474 - in /couchdb/trunk: etc/couchdb/default.ini.tpl.in share/www/script/test/changes.js src/couchdb/couch_httpd_misc_handlers.erl src/couchdb/couch_query_servers.erl
Date Thu, 14 May 2009 01:39:29 GMT

On 14 May 2009, at 03:17, Damien Katz wrote:

> We have to both block and merge commits? It seems like we should  
> only need to do one or the other, but not both.

We need block or merge a commit for any stable branch
(currently 0.9.x), depending on wether we like to have it
in the stable branch or not.

We could just not merge it, but explicitly blocking it makes
working with SVN and keeping track of unmerged and
unblocked commits easier. I.e. we can differentiate between
commits that have been considered to not be backported and
commits that have not been considered at all.

Cheers
Jan
--
Or a more geeky answer: A commit can be in one of three
states (for any given branch): Merged, blocked, and unprocessed.
A binary flag is not sufficient to record three states :)


>
> -Damien
>
> On May 13, 2009, at 8:54 PM, Jan Lehnardt wrote:
>
>> Hi Damien,
>>
>> Can you take care of blocking / merging commits from / to
>> branches/0.9.x or should somebody else look after it? I'd
>> volunteer.
>>
>> Cheers
>> Jan
>> --
>>
>>
>>
>> On 13 May 2009, at 20:27, damien@apache.org wrote:
>>
>>> Author: damien
>>> Date: Wed May 13 18:27:11 2009
>>> New Revision: 774474
>>>
>>> URL: http://svn.apache.org/viewvc?rev=774474&view=rev
>>> Log:
>>> Adding testing for GET /_changes?continuous=true by adding a GET / 
>>> _sleep?time=Msecs call, which allows the browser to process the  
>>> waiting data on the other async XHR request.
>>>
>>> Modified:
>>> couchdb/trunk/etc/couchdb/default.ini.tpl.in
>>> couchdb/trunk/share/www/script/test/changes.js
>>> couchdb/trunk/src/couchdb/couch_httpd_misc_handlers.erl
>>> couchdb/trunk/src/couchdb/couch_query_servers.erl
>>>
>>> Modified: couchdb/trunk/etc/couchdb/default.ini.tpl.in
>>> URL: http://svn.apache.org/viewvc/couchdb/trunk/etc/couchdb/default.ini.tpl.in?rev=774474&r1=774473&r2=774474&view=diff
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> ====================================================================
>>> --- couchdb/trunk/etc/couchdb/default.ini.tpl.in (original)
>>> +++ couchdb/trunk/etc/couchdb/default.ini.tpl.in Wed May 13  
>>> 18:27:11 2009
>>> @@ -60,6 +60,7 @@
>>> _restart = {couch_httpd_misc_handlers, handle_restart_req}
>>> _stats = {couch_httpd_stats_handlers, handle_stats_req}
>>> _log = {couch_httpd_misc_handlers, handle_log_req}
>>> +_sleep = {couch_httpd_misc_handlers, handle_sleep_req}
>>>
>>> [httpd_db_handlers]
>>> _compact = {couch_httpd_db, handle_compact_req}
>>>
>>> Modified: couchdb/trunk/share/www/script/test/changes.js
>>> URL: http://svn.apache.org/viewvc/couchdb/trunk/share/www/script/test/changes.js?rev=774474&r1=774473&r2=774474&view=diff
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> ====================================================================
>>> --- couchdb/trunk/share/www/script/test/changes.js (original)
>>> +++ couchdb/trunk/share/www/script/test/changes.js Wed May 13  
>>> 18:27:11 2009
>>> @@ -10,29 +10,85 @@
>>> // License for the specific language governing permissions and  
>>> limitations under
>>> // the License.
>>>
>>> +
>>> couchTests.changes = function(debug) {
>>> var db = new CouchDB("test_suite_db");
>>> db.deleteDb();
>>> db.createDb();
>>> if (debug) debugger;
>>>
>>> -
>>> -  var req = CouchDB.newXhr();
>>> -
>>> -  req.open("GET", "/test_suite_db/_changes", false);
>>> -  req.send("");
>>> +  var req = CouchDB.request("GET", "/test_suite_db/_changes");
>>> var resp = JSON.parse(req.responseText);
>>>
>>> T(resp.results.length == 0 && resp.last_seq==0)
>>>
>>> -  var doc = {_id:"foo", bar:1};
>>> -  db.save(doc);
>>> +  var docFoo = {_id:"foo", bar:1};
>>> +  db.save(docFoo);
>>>
>>> -  req.open("GET", "/test_suite_db/_changes", false);
>>> -  req.send("");
>>> +  req = CouchDB.request("GET", "/test_suite_db/_changes");
>>> var resp = JSON.parse(req.responseText);
>>>
>>> T(resp.results.length == 1 && resp.last_seq==1)
>>> -  T(resp.results[0].changes[0].rev == doc._rev)
>>> +  T(resp.results[0].changes[0].rev == docFoo._rev)
>>> +
>>> +  var xhr;
>>> +
>>> +  try {
>>> +    xhr = CouchDB.newXhr();
>>> +  } catch (err) {
>>> +  }
>>> +
>>> +  if (xhr) {
>>> +    // Only test the continuous stuff if we have a real XHR object
>>> +    // with real async support.
>>> +
>>> +    var sleep = function(msecs) {
>>> +      // by making a slow sync request, weallows the waiting XHR  
>>> request data
>>> +      // to be received.
>>> +      var req = CouchDB.request("GET", "/_sleep?time=" + msecs);
>>> +      T(JSON.parse(req.responseText).ok == true);
>>> +    }
>>> +
>>> +    var parse_changes_line = function(line) {
>>> +      if (line.charAt(line.length-1) == ",") {
>>> +        line = line.substring(0, line.length-1);
>>> +      }
>>> +      return JSON.parse(line);
>>> +    }
>>> +
>>> +    xhr.open("GET", "/test_suite_db/_changes?continuous=true",  
>>> true);
>>> +    xhr.send("");
>>> +
>>> +    var docBar = {_id:"bar", bar:1};
>>> +    db.save(docBar);
>>> +
>>> +    sleep(100);
>>> +    var lines = xhr.responseText.split("\n");
>>> +
>>> +    T(lines[0]='{"results":[');
>>> +
>>> +    var change = parse_changes_line(lines[1]);
>>> +
>>> +    T(change.seq == 1)
>>> +    T(change.id == "foo")
>>> +
>>> +    change = parse_changes_line(lines[2]);
>>> +
>>> +    T(change.seq == 2)
>>> +    T(change.id == "bar")
>>> +    T(change.changes[0].rev == docBar._rev)
>>> +
>>> +    var docBaz = {_id:"baz", baz:1};
>>> +    db.save(docBaz);
>>> +
>>> +    sleep(100);
>>> +    var lines = xhr.responseText.split("\n");
>>> +
>>> +    change = parse_changes_line(lines[3]);
>>> +
>>> +    T(change.seq == 3);
>>> +    T(change.id == "baz");
>>> +    T(change.changes[0].rev == docBaz._rev);
>>>
>>> +  }
>>> };
>>>
>>> Modified: couchdb/trunk/src/couchdb/couch_httpd_misc_handlers.erl
>>> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_httpd_misc_handlers.erl?rev=774474&r1=774473&r2=774474&view=diff
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> ====================================================================
>>> --- couchdb/trunk/src/couchdb/couch_httpd_misc_handlers.erl  
>>> (original)
>>> +++ couchdb/trunk/src/couchdb/couch_httpd_misc_handlers.erl Wed  
>>> May 13 18:27:11 2009
>>> @@ -15,7 +15,7 @@
>>> -export([handle_welcome_req/2,handle_favicon_req/ 
>>> 2,handle_utils_dir_req/2,
>>>  handle_all_dbs_req/1,handle_replicate_req/1,handle_restart_req/1,
>>>  handle_uuids_req/1,handle_config_req/1,handle_log_req/1,
>>> -    handle_task_status_req/1]).
>>> +    handle_task_status_req/1,handle_sleep_req/1]).
>>>
>>> -export([increment_update_seq_req/2]).
>>>
>>> @@ -56,6 +56,12 @@
>>> handle_utils_dir_req(Req, _) ->
>>>  send_method_not_allowed(Req, "GET,HEAD").
>>>
>>> +handle_sleep_req(#httpd{method='GET'}=Req) ->
>>> +    Time = list_to_integer(couch_httpd:qs_value(Req, "time")),
>>> +    receive snicklefart -> ok after Time -> ok end,
>>> +    send_json(Req, {[{ok, true}]});
>>> +handle_sleep_req(Req) ->
>>> +    send_method_not_allowed(Req, "GET,HEAD").
>>>
>>> handle_all_dbs_req(#httpd{method='GET'}=Req) ->
>>>  {ok, DbNames} = couch_server:all_databases(),
>>>
>>> Modified: couchdb/trunk/src/couchdb/couch_query_servers.erl
>>> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_query_servers.erl?rev=774474&r1=774473&r2=774474&view=diff
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> = 
>>> ====================================================================
>>> --- couchdb/trunk/src/couchdb/couch_query_servers.erl (original)
>>> +++ couchdb/trunk/src/couchdb/couch_query_servers.erl Wed May 13  
>>> 18:27:11 2009
>>> @@ -278,7 +278,7 @@
>>>  [{Pid, Lang}] ->
>>>      case Status of
>>>      normal -> ok;
>>> -        _ -> ?LOG_DEBUG("Linked process died abnromally: ~p  
>>> (reason: ~p)", [Pid, Status])
>>> +        _ -> ?LOG_DEBUG("Linked process died abnormally: ~p  
>>> (reason: ~p)", [Pid, Status])
>>>      end,
>>>      {ok, {
>>>          Langs,
>>>
>>>
>>>
>>
>
>


Mime
View raw message