-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathgit-restore
executable file
·59 lines (41 loc) · 1.11 KB
/
git-restore
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/env ruby
#
#
# restores a git repository earlier backed up with git-backup
# documentation in man git-restore(1)
#
# ideal scenario: git restore my-repo
#
# looks in git config for the default backup location
# search for the files corresponding to the repo name
# get the most recent
#
# In the future there will be probably 3 scripts, one for backup, one for restore and one with common functionality such as querying git config
#
# Right now, just take to command line parameters
#
# TODO:
# -everything ;)
#
#
bundle = ARGV[ 0 ]
directory = ARGV[ 1 ]
if not File.exists?( bundle )
raise( 'fatal: bundle not found: ' + bundle )
end
# no dir given on cmd line
#
if directory === nil
directory = ( Dir.getwd + '/' + bundle ).gsub( /\.[^\/.]+$/ , '' )
end
# Destination already exists
#
if File::directory?( directory )
raise( 'fatal: destination directory exists! Overwriting not supported for the moment.' )
end
`git clone --mirror "#{bundle}" "#{directory}/.git"`
Dir::chdir( "#{directory}" )
`git config core.bare false`
`git config core.logallrefupdates true`
`git remote rm origin`
`git checkout`