체크 아웃 작업을 시작할 때 git은 무엇을합니까? 자물쇠 파일을 쓰거나 뭔가를 쓰나요?git 체크 아웃이 완료 될 때까지 파일 감시자를 잠급니다.
나는 꿀꺽 꿀꺽 거리는 소리를 사용하며, 적극적으로 계산 작업을 수행하는 경우에는 감시자를 "일시 중지"하고 싶습니다.
나는 파일 감시자를 다시 장비에 넣을 때 "다시 저장"해야 할 수도 있습니다.
체크 아웃 작업을 시작할 때 git은 무엇을합니까? 자물쇠 파일을 쓰거나 뭔가를 쓰나요?git 체크 아웃이 완료 될 때까지 파일 감시자를 잠급니다.
나는 꿀꺽 꿀꺽 거리는 소리를 사용하며, 적극적으로 계산 작업을 수행하는 경우에는 감시자를 "일시 중지"하고 싶습니다.
나는 파일 감시자를 다시 장비에 넣을 때 "다시 저장"해야 할 수도 있습니다.
gulp.watch()
함수는 end()
메서드를 호출 할 수있는 객체를 반환합니다. glob-watcher 모듈의 정의를 참조하십시오. 우리가보고 시작하면
var gulp = require('gulp');
function doGitCheckout(callback) {
console.log('doing checkout...');
setTimeout(function() {
console.log('done checkout...');
callback();
}, 1000);
}
var watcher;
gulp.task('watch:start', function() {
if (!watcher) {
watcher = gulp.watch('dist/**/*', ['build']);
console.log('started watcher');
}
});
gulp.task('watch:stop', function() {
if (watcher) {
watcher.end();
watcher = null;
console.log('stopped watcher');
}
});
gulp.task('git:checkout', ['watch:stop'], function(cb) {
console.log('isWatching = ' + !!watcher);
// Start the Git checkout...
doGitCheckout(function() {
// The Git checkout is finished!
gulp.start('watch:start', function() {
cb();
});
});
});
gulp.task('default', ['watch:start', 'git:checkout']);
그래서 우리는 감시자 개체에 대한 참조를 유지하고 실행하면 감시자를 중지하는 작업이 있습니다
이러한 라인을 따라 뭔가를 할 수 있습니다. Git 작업은 시작하려면 watch:stop
에 의존하고 완료되면 콜백으로 Git 체크 아웃을 시작합니다. 콜백은 watch:start
작업을 시작하고 완료되면 cb
함수를 트리거하여 git:checkout
이 완료되었음을 나타냅니다.
시계 개체에서 add(pattern)
및 remove(pattern)
을 사용하여 개체를 파괴하고 다시 만드는 대신 해제하고 다시 켤 수도 있습니다.
멋진 소식! 나는 꿀꺽 꿀꺽 새기 스크립트에서 자식을 걷어차 고 있지는 않다. ... git checkout은 작업 카피 파일을 다시 쓰고 있기 때문에 gulp 전문가는 gulp 작업을 시작합니다. git checkout이 활성화되어 있는지 (예 : .git/checkout.lock 파일이 존재하거나 유사하므로) 확인하고 git checkout이 다시 작성 될 때까지 일시적으로 작업을 실행하지 못하도록하는 방법을 찾고 있습니다. 작업 카피 – enorl76
자물쇠 파일 메커니즘이 있습니다 - 기술 정보는 [이 문서] (https://github.com/git/git/blob/master/Documentation/technical/api-lockfile.txt)를보십시오. 그러나 Git은 기본 작업에 잠금 파일을 사용하지 않고 마치'git rebase '와 같은 더 긴 작업에만 사용되는 것처럼 보입니다. 또한 일관된 상태를 유지해야하기 때문에 읽기 작업을 중지하지 않습니다. – spiralx
Git 프로세스를 제어 할 수 있다면 Gulp 감시자가 소켓에서 수신 대기하고 "일시 중지"및 "다시 시작"메시지를 받아 들일 수 있습니다. 당신은 힘내 과정 전에 일시 중지를 보낼 수 있고, 그것이 끝나면 재개한다. – spiralx