Comments (5)
Another example. If I try to checkout then merge:
// FIXME merge fails, seems to happen before checkout is complete
gulp.task('publish', ['test'], function() {
var version = require('./package.json').version;
return gulp.src('.')
.pipe(git.checkout('gh-pages'))
.pipe(git.merge('master'))
.pipe(git.commit('merged master ' + version + ' to gh-pages'))
.pipe(git.push('origin', 'gh-pages'))
.pipe(git.checkout('master'))
.end();
});
The merge seems to fail early ('Already up to date') before the checkout has been done:
[gulp] Starting 'publish'...
[gulp] 'publish' errored after 13 ms Object #<ChildProcess> has no method 'pipe'
[gulp] Already up-to-date.
[gulp] Your branch is up-to-date with 'origin/gh-pages'.
Switched to branch 'gh-pages'
from gulp-git.
What happens when you isolate the push into the on end?
gulp.task('release', function() {
var version = require('./package.json').version;
return gulp.src('.')
.pipe(git.commit('released version ' + version))
.on('end', function(){
.pipe(git.push('origin', 'master'))
.end();
});
});
Merge is not a stream, it is a function. #3
from gulp-git.
Closing, I will reopen if needed.
from gulp-git.
Hi, thanks for responding. The code above needs a this
added to work, so this is successful:
gulp.task('release', ['bump-version'], function() {
var version = require('./package.json').version;
return gulp.src('.')
.pipe(git.commit('released version ' + version))
.on('end', function(){
this.pipe(git.push('origin', 'master'))
.end();
});
});
It sounds like there is a hard distinction between the stream tasks - like commit and checkout which are 'normal' gulp plugins and don't generate surprises - and the function ones, which need special treatment.
If the hard split is by design then the docs need to be much clearer about how you mix and match the task types.
from gulp-git.
No luck getting the merge workflow functional (checkout, merge, push, checkout). Can you confirm the below is how you envision real-world use?
gulp.task('checkoutPages', function() {
return gulp.src('.').pipe(git.checkout('gh-pages'));
});
gulp.task('mergeMaster', function() {
git.merge('master');
});
gulp.task('pushPages', function() {
var version = require('./package.json').version;
return gulp.src('.')
.pipe(git.commit('merged master ' + version + ' to gh-pages'))
.on('end', function(){
this.pipe(git.push('origin', 'gh-pages'))
.end();
});
});
gulp.task('checkoutMaster', function() {
return gulp.src('.').pipe(git.checkout('master'));
});
// merge master into gh-pages and push it
gulp.task('publish', ['checkoutPages', 'mergeMaster', 'pushPages', 'checkoutMaster'], function() {
// no op
});
n.b. My test project is at https://github.com/air/gulp-test
from gulp-git.
Related Issues (20)
- Get current branch name? HOT 2
- git add is broken in Node 8 HOT 1
- git.add does not allow for specified files to add in another cwd HOT 4
- gulp-git breaks in Node 9.5.0. HOT 3
- Error creating commit on new git version HOT 20
- Error: i can't commit HOT 2
- How to use git clone with ssh HOT 2
- How to clone with a specified branch? HOT 5
- commit() will commit also unstaged files HOT 2
- Git add . all files HOT 2
- Cannot use '-a' anymore for commit HOT 4
- how can I checkout a file HOT 1
- stdout maxBuffer length exceeded (diff.js) HOT 1
- Problem with absolute path or Gulp v4
- Cherry-pick - feature request HOT 1
- finish event listener registration error
- Gulp 4 compatibility HOT 1
- Add rebase command HOT 2
- "The command line is too long." on `git.add()` HOT 1
- lodash.template critical vulnerabilities from Mend HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gulp-git.