Giter Site home page Giter Site logo

Comments (25)

stephenlacy avatar stephenlacy commented on August 20, 2024

When you say it works well, do the files get added/committed correctly?
What happens when you separate each git.function() command?

I only get that issue if I manually run two git tasks at the same time on the same repo, and one returns an error.

from gulp-git.

ben-eb avatar ben-eb commented on August 20, 2024

I'm having the same issue. It seems to commit the first file in the pipe and then tries to commit the other file separately, i.e. what happens in my case is that composer.json gets updated and then package.json has the changes applied but is unstaged. My code is pretty much the same:

gulp.task('bump', function() {
    return gulp.src(['./composer.json', './package.json'])
        .pipe(bump({ type: gutil.env.type }))
        .pipe(beautify({ indentSize: 4  }))
        .pipe(gulp.dest('./'));
});

gulp.task('release', ['bump'], function() {
    var version = require('./package.json').version;
    return gulp.src(['./composer.json', './package.json'])
        .pipe(git.commit(version))
        .pipe(git.tag(version, version));
});

If I remove the git.tag() pipe then it still throws.

from gulp-git.

svileng avatar svileng commented on August 20, 2024

@stevelacy yes, I changed app.min.js and it was commited successfully, as it should be, but with the errors above. I haven't tested what happens when more than 1 file is going to be added and commited, will try it later though.

from gulp-git.

svileng avatar svileng commented on August 20, 2024
➜  test git:(master) ✗ gst
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   public/app.min.css
#   modified:   public/app.min.js
#
no changes added to commit (use "git add" and/or "git commit -a")
➜  test git:(master) ✗ gulp cbf
[gulp] Using file /Users/Svilen/Development/test/gulpfile.js
[gulp] Working directory changed to /Users/Svilen/Development/test
[gulp] Running 'cbf'...
[gulp] Finished 'cbf' in 5.43 ms
[gulp] { [Error: Command failed: fatal: Unable to create '/Users/Svilen/Development/test/.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.
] killed: false, code: 128, signal: null }
[gulp]  fatal: Unable to create '/Users/Svilen/Development/test/.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.

[gulp]  
[gulp] { [Error: Command failed: fatal: Unable to create '/Users/Svilen/Development/test/.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.
] killed: false, code: 128, signal: null }
[gulp]  fatal: Unable to create '/Users/Svilen/Development/test/.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.

[gulp] [master c6c9ebd] Minified scripts for production
 1 file changed, 2 insertions(+), 1 deletion(-)
 *** Preserving this moment in history.

➜  test git:(master) ✗ 

So, looks like app.min.js was commited, but app.min.css was not.

from gulp-git.

stephenlacy avatar stephenlacy commented on August 20, 2024

What version of gulp-git are you using?
I only now noticed that this PR #7 broke the plugin Entirely on UNIX systems!

from gulp-git.

ben-eb avatar ben-eb commented on August 20, 2024

I'm using the latest release, 0.3.3.

from gulp-git.

stephenlacy avatar stephenlacy commented on August 20, 2024

While I fix the error, could you install 0.3.2/0.3.1 and test that one?

from gulp-git.

ben-eb avatar ben-eb commented on August 20, 2024

I've tried with 0.3.0, 0.3.1 and 0.3.2. No joy I'm afraid.

I think the problem is that you are iterating over each file in the pipe with map stream, this is fine for one file but fails on multiple files. It seems you might be better off using a through stream to collect the files in the pipeline and act on them in through's flush function, such as a plugin like gulp-size:

https://github.com/sindresorhus/gulp-size/blob/master/index.js

from gulp-git.

stephenlacy avatar stephenlacy commented on August 20, 2024

Yes, on the note of multiple files, I will add the through stream when I get time.

from gulp-git.

stephenlacy avatar stephenlacy commented on August 20, 2024

I added the through2 stream to allow a 'glob' of file paths to be commited at once.
Can you see if it works for you?

from gulp-git.

stephenlacy avatar stephenlacy commented on August 20, 2024

Did it fix your issue?

from gulp-git.

ben-eb avatar ben-eb commented on August 20, 2024

I've actually been using my own function for this in the meantime:

var commit = function(message) {
    return through.obj(function(file, enc, cb) {
        exec('git add ' + file.path, { cwd: file.cwd  }, function(err, stdout, stderr) {
            if (err) {
                gutil.log(err);
            }
            cb(null, file);
        })
    }, function(cb) {
        exec('git commit -m "' + message + '"', function(err, stdout, stderr) {
            if (err) {
                gutil.log(err);
            }
            if (stdout.indexOf(message) > -1) {
                gutil.log('Release ' + gutil.colors.green(message) +  ' ' + stdout.replace(message, ''));
            }
            cb();
        });
    });
};

I think this patch will fix the issue for me, but I've got other things to be looking into so I haven't had chance to update my dev dependencies yet.

from gulp-git.

stephenlacy avatar stephenlacy commented on August 20, 2024

Changes added by way of #17 should fix the issues.

from gulp-git.

zoerooney avatar zoerooney commented on August 20, 2024

I've updated to 0.4.0 but am still running into these errors with /.git/index.lock. I am trying to run git init, git add, and git commit in sequence and it fails regardless of whether I break them out into separate tasks or put them in one sequence. Same errors as others have reported in this thread.

The trial run I just did was:

gulp.task('init', function(){
    git.init();
});
gulp.task('add', function(){
  return gulp.src('./*')
  .pipe(git.add());
});
gulp.task('commit', function(){
    return gulp.src('./*')
    .pipe(git.commit('initial commit'));
});
gulp.task('setup',['styles','init','add','commit']);

Where the styles task is processing SCSS and runs fine, init runs fine, and then add and commit run into the issues with fatal: Unable to create '/Users/user/Desktop/test/.git/index.lock': File exists.

It does seem to get further when I combine git add and git commit like so:

gulp.task('init', function(){
    git.init();
});
gulp.task('commit', function(){
  return gulp.src('./*')
  .pipe(git.add());
  .pipe(git.commit('initial commit'));
});
gulp.task('setup',['styles','init','commit']);

With this, I get the error:

stream.js:94
      throw er; // Unhandled stream error in pipe.
            ^
Error: Command failed: fatal: Unable to create '/Users/user/Desktop/new-test/.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.

    at ChildProcess.exithandler (child_process.js:637:15)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:743:16)
    at Socket.<anonymous> (child_process.js:956:11)
    at Socket.EventEmitter.emit (events.js:95:17)
    at Pipe.close (net.js:465:12)

Sorry for the novel, just trying to be thorough :)

from gulp-git.

romanschejbal avatar romanschejbal commented on August 20, 2024

I am also getting this error, all I am trying to do is git.add(). And I am using MacOSX 10.9.2 and Git version 1.8.5.3

from gulp-git.

stephenlacy avatar stephenlacy commented on August 20, 2024

@zoerooney I thought I had replied a while back, sorry for the delay.

@zoerooney, @crossborne Can you add your git version?

from gulp-git.

romanschejbal avatar romanschejbal commented on August 20, 2024

Sure, I updated my previous comment so find it there. It seems like the git commands are called asynchronously like more at once and that must be the problem.

from gulp-git.

zoerooney avatar zoerooney commented on August 20, 2024

I am using Git version 1.7.11.3 (guess I should probably update one of these days)

from gulp-git.

ingro avatar ingro commented on August 20, 2024

Got the same problem too with GIT 1.9.2 on Windows and Gulp-Git 0.4.3.

gulp.task('git', function() {
    return gulp.src('./*')
    .pipe(git.add())
    .pipe(git.commit("Updated repo"));
});

from gulp-git.

stephenlacy avatar stephenlacy commented on August 20, 2024

I am looking into switching from exec to stream spawn.
This issue seems related to the git process creating spinoffs, which do not end when gulp-git calls the end

from gulp-git.

stephenlacy avatar stephenlacy commented on August 20, 2024

Please install the master git branch to test the new changes added

npm i https://github.com/stevelacy/gulp-git/tarball/master

from gulp-git.

romanschejbal avatar romanschejbal commented on August 20, 2024

Works fine for me now! Cheers! 👍 Could you leave here a message once published?

from gulp-git.

stephenlacy avatar stephenlacy commented on August 20, 2024

@crossborne sounds good, I will.

from gulp-git.

romanschejbal avatar romanschejbal commented on August 20, 2024

Actually, when I run the git.add in parallel it dies on the same error (index.lock being used / already exists) ... But that may not be that easy to fix as you would have to save the filepath into some array and proceed the array once all gulp tasks had finished.

For me you are free to close this issue, since it works fine when I do the workaround mentioned above. But still, it would be nice to know when gulp(the root process) is about to end. (Maybe its possible? I am not sure really)

Cheers, bye

from gulp-git.

stephenlacy avatar stephenlacy commented on August 20, 2024

Yes, git is Very finicky with processes running in parallel, as git does not seem to kill until after the callback is called in child_proccess.exec

Just published to 0.5.0

from gulp-git.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.