git-improved 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: e11e5f761930d6144256491b8a70969fc476a3f69a46279b5cd3bc202d5a5fb0
4
+ data.tar.gz: d921d52ba6e620b61c1c0e8d2258dd386025b865a1c97a854c672aeb9df3a2af
5
+ SHA512:
6
+ metadata.gz: 9ac92a732673c69a58c50c2d5036b3f9e0ca76bcf0e47af8d2d1324386e88ffc1c58a28a7e14c89297babd26823c5eeff16a69174d2f1b9b85dc5f2620e1713b
7
+ data.tar.gz: e86c62fcf12164acbc3b3fc97ffd16965f851217a28a3c9a9e5f7d265c524a79a1f827f25d61df19c306967e98e816571e0a7d0689c2a9d4a638a4c775fa5352
data/CHANGES.md ADDED
@@ -0,0 +1,8 @@
1
+ ChangeLog
2
+ =========
3
+
4
+
5
+ Release 0.1.0 (2023-11-26)
6
+ --------------------------
7
+
8
+ * First public release.
data/MIT-LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 kwatch@gmail.com
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,307 @@
1
+ # GitImproved
2
+
3
+
4
+ ## What's This?
5
+
6
+ GitImproved is a wrapper script for Git command.
7
+ It provides a much better interface than Git.
8
+
9
+ * Intuitive
10
+ * Easy to understand
11
+ * Fewer commands
12
+
13
+ Links:
14
+
15
+ * Document: <https://kwatch.github.io/git-improved/>
16
+ * GitHub: <https://github.com/kwatch/git-improved>
17
+ * Changes: <https://github.com/kwatch/git-improved/CHANGES.md>
18
+
19
+
20
+ ### Table of Contents
21
+
22
+ <!-- TOC -->
23
+
24
+ * [What's This?](#whats-this)
25
+ * [Install](#install)
26
+ * [Quick Example](#quick-example)
27
+ * [Actions](#actions)
28
+ * [Branch](#branch)
29
+ * [Commit](#commit)
30
+ * [Config](#config)
31
+ * [File](#file)
32
+ * [Help](#help)
33
+ * [History](#history)
34
+ * [Misc](#misc)
35
+ * [Repo](#repo)
36
+ * [Staging](#staging)
37
+ * [Stash](#stash)
38
+ * [Status](#status)
39
+ * [Sync](#sync)
40
+ * [Tag](#tag)
41
+ * [Aliases](#aliases)
42
+ * [License and Copyright](#license-and-copyright)
43
+
44
+ <!-- /TOC -->
45
+
46
+
47
+ ## Install
48
+
49
+ GitImproved requires Ruby >= 2.3.
50
+
51
+ ```console
52
+ $ gem install git-improved
53
+ $ gi --version
54
+ 1.0.0
55
+ ```
56
+
57
+
58
+ ## Quick Example
59
+
60
+ ```console
61
+ ## help
62
+ $ gi -h | less # help message
63
+ $ gi -l | less # list actions
64
+ $ gi -h commit:create # help of an action
65
+
66
+ ## create a repo
67
+ $ mkdir mysample # or: gi repo:clone github:<user>/<repo>
68
+ $ cd mysample
69
+ $ gi repo:init -u yourname -e yourname@gmail.com
70
+
71
+ ## add files
72
+ $ vi README.md # create a new file
73
+ $ gi track README.md # register files into the repository
74
+ $ gi # show current status
75
+ $ gi cc "add README file" # commit changes
76
+
77
+ ## edit files
78
+ $ vi README.md # update an existing file
79
+ $ gi stage . # add changes into staging area
80
+ $ gi # show current status
81
+ $ gi staged # show changes in staging area
82
+ $ gi cc "update README file" # commit changes
83
+
84
+ ## upload changes
85
+ $ gi repo:remote:seturl github:yourname/mysample
86
+ $ gi push # upload local commits to remote repo
87
+ ```
88
+
89
+
90
+ ## Actions
91
+
92
+
93
+ ### Branch
94
+
95
+ ```
96
+ branch:checkout : create a new local branch from a remote branch
97
+ branch:create : create a new branch, not switch to it
98
+ (alias: branch)
99
+ branch:current : show current branch name
100
+ branch:delete : delete a branch
101
+ branch:echo : print CURR/PREV/PARENT branch name
102
+ branch:fork : create a new branch and switch to it
103
+ (alias: fork)
104
+ branch:join : merge current branch into previous or other branch
105
+ (alias: join)
106
+ branch:list : list branches
107
+ (alias: branches)
108
+ branch:merge : merge previous or other branch into current branch
109
+ (alias: merge)
110
+ branch:parent : show parent branch name (EXPERIMENTAL)
111
+ branch:previous : show previous branch name
112
+ branch:rebase : rebase (move) current branch on top of other branch
113
+ branch:rename : rename the current branch to other name
114
+ branch:reset : change commit-id of current HEAD
115
+ branch:switch : switch to previous or other branch
116
+ (alias: sw, switch)
117
+ branch:update : git pull && git stash && git rebase && git stash pop
118
+ (alias: update)
119
+ branch:upstream : print upstream repo name of current branch
120
+ ```
121
+
122
+
123
+ ### Commit
124
+
125
+ ```
126
+ commit:apply : apply a commit to curr branch (known as 'cherry-pick')
127
+ commit:correct : correct the last commit
128
+ (alias: correct)
129
+ commit:create : create a new commit
130
+ (alias: cc, commit)
131
+ commit:fixup : correct the previous commit
132
+ (alias: fixup)
133
+ commit:revert : create a new commit which reverts the target commit
134
+ commit:rollback : cancel recent commits up to the target commit-id
135
+ commit:show : show commits in current branch
136
+ (alias: commits)
137
+ ```
138
+
139
+
140
+ ### Config
141
+
142
+ ```
143
+ config : list/get/set/delete config values
144
+ config:alias : list/get/set/delete aliases of 'git' (not of 'gi')
145
+ config:setuser : set user name and email
146
+ ```
147
+
148
+
149
+ ### File
150
+
151
+ ```
152
+ file:blame : print commit-id, author, and timestap of each line
153
+ file:changes : show changes of files
154
+ (alias: changes)
155
+ file:delete : delete files or directories
156
+ file:egrep : find by pattern
157
+ file:list : list (un)tracked/ignored/missing files
158
+ (alias: files)
159
+ file:move : move files into a directory
160
+ file:rename : rename a file or directory to new name
161
+ file:restore : restore files (= clear changes)
162
+ file:track : register files into the repository
163
+ (alias: register, track)
164
+ ```
165
+
166
+
167
+ ### Help
168
+
169
+ ```
170
+ help : print help message (of action if specified)
171
+ ```
172
+
173
+
174
+ ### History
175
+
176
+ ```
177
+ history : show commit history in various format
178
+ (alias: hist (with '-F graph'))
179
+ history:edit:cancel : cancel (or abort) `git rebase -i`
180
+ history:edit:resume : resume (= conitnue) suspended `git rebase -i`
181
+ history:edit:skip : skip current commit and resume
182
+ history:edit:start : start `git rebase -i` to edit commit history
183
+ (alias: histedit)
184
+ history:notuploaded : show commits not uploaded yet
185
+ ```
186
+
187
+
188
+ ### Misc
189
+
190
+ ```
191
+ misc:initfile : generate a init file, or print to stdout if no args
192
+ ```
193
+
194
+
195
+ ### Repo
196
+
197
+ ```
198
+ repo:clone : copy a repository ('github:<user>/<repo>' is available)
199
+ repo:create : create a new directory and initialize it as a git repo
200
+ repo:init : initialize git repository with empty initial commit
201
+ repo:remote : list/get/set/delete remote repository
202
+ repo:remote:origin : get/set/delete origin (= default remote repository)
203
+ ```
204
+
205
+
206
+ ### Staging
207
+
208
+ ```
209
+ staging:add : add changes of files into staging area
210
+ (alias: pick (with '-p'), stage)
211
+ staging:clear : delete all changes in staging area
212
+ (alias: unstage)
213
+ staging:edit : edit changes in staging area
214
+ staging:show : show changes in staging area
215
+ (alias: staged)
216
+ ```
217
+
218
+
219
+ ### Stash
220
+
221
+ ```
222
+ stash:drop : delete latest changes from stash
223
+ stash:list : list stash history
224
+ stash:pop : restore latest changes from stash
225
+ stash:put : save current changes into stash
226
+ stash:show : show changes on stash
227
+ ```
228
+
229
+
230
+ ### Status
231
+
232
+ ```
233
+ status:compact : show status in compact format
234
+ (alias: status)
235
+ status:default : show status in default format
236
+ status:here : same as 'stats:compact .'
237
+ status:info : show various infomation of current status
238
+ ```
239
+
240
+
241
+ ### Sync
242
+
243
+ ```
244
+ sync:both : download and upload commits
245
+ (alias: sync)
246
+ sync:pull : download commits from remote and apply them to local
247
+ (alias: dl, download, pull)
248
+ sync:push : upload commits to remote
249
+ (alias: push, up, upload)
250
+ ```
251
+
252
+
253
+ ### Tag
254
+
255
+ ```
256
+ tag : list/show/create/delete tags
257
+ tag:create : create a new tag
258
+ tag:delete : delete a tag
259
+ tag:download : download tags
260
+ tag:list : list tags
261
+ (alias: tags)
262
+ tag:upload : upload tags
263
+ ```
264
+
265
+
266
+ ## Aliases
267
+
268
+ ```
269
+ branch : alias for 'branch:create'
270
+ fork : alias for 'branch:fork'
271
+ join : alias for 'branch:join'
272
+ branches : alias for 'branch:list'
273
+ merge : alias for 'branch:merge'
274
+ sw : alias for 'branch:switch'
275
+ switch : alias for 'branch:switch'
276
+ update : alias for 'branch:update'
277
+ correct : alias for 'commit:correct'
278
+ cc : alias for 'commit:create'
279
+ commit : alias for 'commit:create'
280
+ fixup : alias for 'commit:fixup'
281
+ commits : alias for 'commit:show'
282
+ changes : alias for 'file:changes'
283
+ files : alias for 'file:list'
284
+ register : alias for 'file:track'
285
+ track : alias for 'file:track'
286
+ hist : alias for 'history -F graph'
287
+ histedit : alias for 'history:edit:start'
288
+ pick : alias for 'staging:add -p'
289
+ stage : alias for 'staging:add'
290
+ unstage : alias for 'staging:clear'
291
+ staged : alias for 'staging:show'
292
+ status : alias for 'status:compact'
293
+ sync : alias for 'sync:both'
294
+ dl : alias for 'sync:pull'
295
+ download : alias for 'sync:pull'
296
+ pull : alias for 'sync:pull'
297
+ push : alias for 'sync:push'
298
+ up : alias for 'sync:push'
299
+ upload : alias for 'sync:push'
300
+ tags : alias for 'tag:list'
301
+ ```
302
+
303
+
304
+ ## License and Copyright
305
+
306
+ * $License: MIT License $
307
+ * $Copyright: copyright(c) 2023 kwatch@gmail.com $
data/bin/gi ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+ # frozen_string_literal: true
4
+
5
+ require 'git-improved'
6
+
7
+ exit GitImproved.main()
@@ -0,0 +1,34 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "git-improved"
5
+ spec.version = "$Release: 0.1.0 $".split()[1]
6
+ spec.author = "kwatch"
7
+ spec.email = "kwatch@gmail.com"
8
+ spec.platform = Gem::Platform::RUBY
9
+ spec.homepage = "https://kwatch.github.io/git-improved/"
10
+ spec.summary = "Improved interface for Git command"
11
+ spec.description = <<-"END"
12
+ Git-Improved is a wrapper script for Git command.
13
+ It provides much better interface than Git.
14
+
15
+ See #{spec.homepage} for details.
16
+ END
17
+ spec.license = "MIT"
18
+ spec.files = Dir[
19
+ "README.md", "MIT-LICENSE", "CHANGES.md",
20
+ "#{spec.name}.gemspec",
21
+ "lib/**/*.rb", "test/**/*.rb", "bin/*",
22
+ #"doc/*.html", "doc/css/*.css",
23
+ ]
24
+ spec.executables = ["gi"]
25
+ spec.bindir = "bin"
26
+ spec.require_path = "lib"
27
+ spec.test_files = Dir["test/**/*_test.rb"] # or: ["test/run_all.rb"]
28
+ #spec.extra_rdoc_files = ["README.md", "CHANGES.md"]
29
+
30
+ spec.required_ruby_version = ">= 2.3"
31
+ spec.add_runtime_dependency "benry-cmdapp" , "~> 1"
32
+ spec.add_runtime_dependency "benry-unixcommand" , "~> 1"
33
+ spec.add_development_dependency "oktest" , "~> 1"
34
+ end