Romain Calascibetta
b5fa25d9a5
This implementation is much more close to the documentation & fold all changes into one commit. Then, it pushes this commit remotely. This commit deleted local changes which complexify the codebase for a questionable interest. As the documentation said, any changes are delayed and not directly "committed" until the end of the given function. For instance: > batch > set /bar "Bar" > exists /bar /bar does not exists is an expected behavior. Only after a quit (which delimit the end of the batch process), /bar will be committed and will exist!
28 lines
684 B
Perl
28 lines
684 B
Perl
Batch operation
|
|
$ mkdir simple
|
|
$ cd simple
|
|
$ git init --bare -q 2> /dev/null
|
|
$ cd ..
|
|
$ git daemon --base-path=. --export-all --enable=receive-pack --reuseaddr --pid-file=pid --detach
|
|
$ mgit git://localhost/simple#main <<EOF
|
|
> batch
|
|
> set /bar "Git rocks!"
|
|
> set /foo "Hello World!"
|
|
> exists /bar
|
|
> quit
|
|
> quit
|
|
/"bar" does not exists
|
|
$ mgit git://localhost/simple#main <<EOF
|
|
> list /
|
|
> get /bar
|
|
> get /foo
|
|
> quit
|
|
- bar
|
|
- foo
|
|
00000000: 4769 7420 726f 636b 7321 Git rocks!
|
|
00000000: 4865 6c6c 6f20 576f 726c 6421 Hello World!
|
|
$ cd simple
|
|
$ git log main --pretty=oneline | wc -l
|
|
1
|
|
$ cd ..
|
|
$ kill $(cat pid)
|