Skip to content

Commit 3736ee1

Browse files
committed
fixes for 0.0.3
1 parent 290338b commit 3736ee1

9 files changed

Lines changed: 78 additions & 31 deletions

File tree

example/convenience-commit.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,23 @@ git.repo( '../.git', function( err, repo ) {
88

99
var history = commit.history();
1010
history.on( 'commit', function() {
11-
console.log(arguments);
11+
//console.log(arguments);
12+
});
13+
14+
history.on( 'end', function( commits ) {
15+
// Read first commit tree
16+
var tree = commits[0].tree();
17+
18+
// Synchronous
19+
tree.walk(function( i, entry ) {
20+
console.log( entry.content );
21+
return false;
22+
});
23+
24+
// Asynchronous - not yet implemented
25+
//tree.walk().on( 'entry', function( err, i, entry ) {
26+
// console.log( entry );
27+
//});
1228
});
1329
});
1430

lib/blob.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ var _Blob = function( obj ) {
1313

1414
Object.defineProperty( self, 'raw', {
1515
get: function() {
16-
return self.blob.rawContent();
16+
return self.blob.rawContent().toString();
1717
},
1818
enumerable: true
1919
});

lib/commit.js

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
var git = require( '../' ),
2-
events = require( 'events' );
1+
var git = require( '../' )
2+
, events = require( 'events' );
33

44
var _Commit = function( obj ) {
55
var self = { _cache: {} };
@@ -91,13 +91,13 @@ var _Commit = function( obj ) {
9191
self.tree = function() {
9292
var tree = new git.raw.Tree( self.repo );
9393
if( tree.error ) {
94-
throw git.error( tree.error );
94+
return git.error( tree.error );
9595
}
9696
else {
9797
self.commit.tree( tree );
9898
}
9999

100-
return git.tree( tree );
100+
return git.tree( self.repo, tree );
101101
};
102102

103103
self.file = function( path ) {
@@ -106,14 +106,16 @@ var _Commit = function( obj ) {
106106

107107
self.history = function( start, end ) {
108108
var revwalk = git.revwalk( self.repo ),
109-
event = new events.EventEmitter();
109+
event = new events.EventEmitter(),
110+
commits = [];
110111

111-
revwalk.walk( self.id, function( err, commit ) {
112+
revwalk.walk( self.id, function( err, index, commit ) {
112113
if( err ) {
113-
event.emit( 'error', err );
114+
event.emit( 'end', commits );
114115
}
115116
else {
116-
event.emit( 'commit', commit );
117+
event.emit( 'commit', index, commit );
118+
commits.push( commit );
117119
}
118120
});
119121

lib/revwalk.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ var _RevWalk = function( obj ) {
2424
var _tmp = git.oid();
2525

2626
self.revwalk.next( _tmp.oid, function( err ) {
27-
if( err ) { return; }
27+
if( err ) { callback.apply( this, [ err ] ); return; }
2828

29-
git.commit( self.repo ).lookup( _tmp.oid, function( err ) {
30-
if( err ) { return; }
29+
git.commit( self.repo ).lookup( self.repo, _tmp.oid, function( err ) {
30+
if( err ) { callback.apply( this, [ err, i, this ] ); }
3131

32-
if( callback.apply( this, [ i, this ] ) === false ) {
32+
if( callback.apply( this, [ err, i, this ] ) === false ) {
3333
cont = false;
3434
}
3535

lib/tree.js

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
var git = require( '../' );
1+
var git = require( '../' )
2+
, events = require( 'events' );
23

34
var _Tree = function( obj, tree ) {
45
var self = {};
5-
6-
if( obj instanceof git.raw.Repo ) {
6+
if ( obj instanceof git.raw.Repo && tree instanceof git.raw.Tree ) {
77
self.repo = obj;
8-
self.tree = new git.raw.Tree( tree );
8+
self.tree = tree;
99
}
10-
else if ( obj instanceof git.raw.Repo && tree instanceof git.raw.Tree ) {
10+
else if( obj instanceof git.raw.Repo ) {
1111
self.repo = obj;
12-
self.tree = tree;
12+
self.tree = new git.raw.Tree( tree );
1313
}
1414
else if ( obj instanceof git.raw.Tree ) {
1515
self.tree = obj;
@@ -25,17 +25,46 @@ var _Tree = function( obj, tree ) {
2525
enumerable: true
2626
});
2727

28-
self.each = function( callback ) {
28+
// Synchronous walk
29+
self.walk = function( callback ) {
2930
if( !callback ) { return; }
3031

31-
var entry, i;
32+
var entry
33+
, i;
34+
3235
for( i=0, len=self.length; i<len; i++ ) {
33-
entry = git.entry();
36+
entry = git.entry( self.repo );
37+
3438
self.tree.entryByIndex( entry.entry, i );
35-
callback.apply( entry, [ i, entry ] );
39+
40+
if( callback.apply( entry, [ i, entry ] ) === false ) {
41+
break;
42+
}
3643
}
3744
};
3845

46+
//self.walk = function( callback ) {
47+
// if( !callback ) { return; }
48+
49+
// var entry
50+
// , i
51+
// , entries
52+
// , event = new events.EventEmitter();
53+
54+
// for( i=0, len=self.length; i<len; i++ ) {
55+
// entry = git.entry();
56+
57+
// self.tree.entryByIndex( entry.entry, i );
58+
// event.emit( 'entry', [ err, i, entry ] );
59+
60+
// entries.push( entry );
61+
// }
62+
63+
// event.emit( 'end', entries );
64+
65+
// return event;
66+
//};
67+
3968
self.entry = function( name ) {
4069
var entry = git.entry( self.repo );
4170

lib/tree_entry.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ var _TreeEntry = function( obj ) {
2222
get: function() {
2323
var blob = git.blob( self.repo );
2424

25-
self.entry.toObject( blob.blob );
25+
self.entry.toObject( self.repo, blob.blob );
2626

2727
return blob.raw;
2828
},

src/blob.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,9 +139,9 @@ int GitBlob::EIO_AfterLookup(eio_req* req) {
139139
Handle<Value> GitBlob::RawContent(const Arguments& args) {
140140
GitBlob* blob = ObjectWrap::Unwrap<GitBlob>(args.This());
141141

142-
if(args.Length() == 0 || !args[0]->IsObject()) {
143-
return ThrowException(Exception::Error(String::New("Buffer is required and must be an Object.")));
144-
}
142+
//if(args.Length() == 0 || !args[0]->IsObject()) {
143+
// return ThrowException(Exception::Error(String::New("Buffer is required and must be an Object.")));
144+
//}
145145

146146
int rawSize = blob->RawSize();
147147
const char* contents = (const char *)const_cast<void *>(blob->RawContent());

src/revwalk.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ Handle<Value> GitRevWalk::Push(const Arguments& args) {
125125
}
126126

127127
Handle<Value> GitRevWalk::Next(const Arguments& args) {
128-
GitRevWalk *revwalk = ObjectWrap::Unwrap<GitRevWalk>(args.This());
128+
GitRevWalk* revwalk = ObjectWrap::Unwrap<GitRevWalk>(args.This());
129129
Local<Function> callback;
130130

131131
HandleScope scope;
@@ -140,7 +140,7 @@ Handle<Value> GitRevWalk::Next(const Arguments& args) {
140140

141141
callback = Local<Function>::Cast(args[1]);
142142

143-
next_request *ar = new next_request();
143+
next_request* ar = new next_request();
144144
ar->revwalk = revwalk;
145145
ar->oid = ObjectWrap::Unwrap<GitOid>(args[0]->ToObject());
146146
ar->callback = Persistent<Function>::New(callback);

util/nodejshint.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ var nodejshint = function() {
1212
fs.readFile( file, function( err, data ) {
1313
if (err) { throw err; }
1414

15-
if( pass = JSHINT( data.toString() ), pass ) {
15+
if( pass = JSHINT( data.toString() ), pass, { laxbreak: true } ) {
1616
counter++;
1717
console.log( '✔ Passed '+ file );
1818
}

0 commit comments

Comments
 (0)