Git, the D package manager

Martin Nowak via Digitalmars-d digitalmars-d at puremagic.com
Tue Feb 3 17:04:24 PST 2015


On 02/03/2015 04:20 AM, Martin Nowak wrote:
> On Tuesday, 3 February 2015 at 02:39:56 UTC, Vladimir Panteleev wrote:
>> I might revisit Dub again once some of the fixable issues mentioned
>> here are fixed.
>
> Another very important argument is consistency in using packages.
> I recently tried digger which is a really great tool, but it took me
> about 5 min to get it running.
>

Just used Digger again and I'm going to copy my console output here, 
because it nicely illustrates my point.

➜ ~ cd Build/Digger/
➜ Digger git:(master) ls
ae/       bisect.ini         cache.d       common.d  custom.d  digger.d 
           digger-web.d  repo/   result/  win32/
bisect.d  bisect.ini.sample  CHANGELOG.md  current/  digger* 
digger.ini.sample  README.md     repo.d  web/
➜ Digger git:(master) git pull
rdremote: Counting objects: 25, done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 25 (delta 11), reused 0 (delta 0)
Unpacking objects: 100% (25/25), done.
 From https://github.com/CyberShadow/Digger
    8f33627..b6d06be  master     -> origin/master
Fetching submodule ae
md --buiFirst, rewinding head to replay your work on top of it...
Fast-forwarded master to b6d06be2346986a74937c918ed1d4ac121a9819f.
➜ Digger git:(master) ✗ rdmd --build-only digger
digger.d(12): Error: module main is in file 'ae/utils/main.d' which 
cannot be read
import path[0] = .
import path[1] = /usr/include/dmd/phobos
import path[2] = /usr/include/dmd/druntime/import
Failed: ["dmd", "-v", "-o-", "digger.d", "-I."]
➜ Digger git:(master) ✗ ls
ae/       bisect.ini         cache.d       common.d  current/  digger* 
  digger.ini.sample  README.md  repo.d   web/
bisect.d  bisect.ini.sample  CHANGELOG.md  config.d  custom.d  digger.d 
  digger-web.d       repo/      result/  win32/
➜ Digger git:(master) ✗ git submodule update
fatal: reference is not a tree: 318ccc76669e9840f43b88e63bcfb1e461ce6d61
Unable to checkout '318ccc76669e9840f43b88e63bcfb1e461ce6d61' in 
submodule path 'ae'
➜ Digger git:(master) ✗ git submodule fetch
usage: git submodule [--quiet] add [-b <branch>] [-f|--force] [--name 
<name>] [--reference <repository>] [--] <repository> [<path>]
    or: git submodule [--quiet] status [--cached] [--recursive] [--] 
[<path>...]
    or: git submodule [--quiet] init [--] [<path>...]
    or: git submodule [--quiet] deinit [-f|--force] [--] <path>...
    or: git submodule [--quiet] update [--init] [--remote] 
[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--reference 
<repository>] [--recursive] [--] [<path>...]
    or: git submodule [--quiet] summary [--cached|--files] 
[--summary-limit <n>] [commit] [--] [<path>...]
    or: git submodule [--quiet] foreach [--recursive] <command>
    or: git submodule [--quiet] sync [--recursive] [--] [<path>...]
➜ Digger git:(master) ✗ git submodule status
+c58d5b75242fcab15872acc5d922e103d3ae9423 ae (remotes/upstream/HEAD)
  7a476ca6139869e89943bcf21e0b27904bdf9491 win32 (heads/master)
➜ Digger git:(master) ✗ gitk
➜ Digger git:(master) ✗ git gui
➜ Digger git:(master) ✗ git reset --hard
HEAD is now at b6d06be Detect absence of ae library
➜ Digger git:(master) ✗ git diff
diff --git a/ae b/ae
index 318ccc7..c58d5b7 160000
--- a/ae
+++ b/ae
@@ -1 +1 @@
-Subproject commit 318ccc76669e9840f43b88e63bcfb1e461ce6d61
+Subproject commit c58d5b75242fcab15872acc5d922e103d3ae9423
➜ Digger git:(master) ✗ git reset --hard
HEAD is now at b6d06be Detect absence of ae library
➜ Digger git:(master) ✗ rdmd --build-only digger
digger.d(12): Error: module main is in file 'ae/utils/main.d' which 
cannot be read
import path[0] = .
import path[1] = /usr/include/dmd/phobos
import path[2] = /usr/include/dmd/druntime/import
Failed: ["dmd", "-v", "-o-", "digger.d", "-I."]
➜ Digger git:(master) ✗ cd ae
➜ ae gitk
➜ ae cd ..
➜ Digger git:(master) ✗ git submodule sync
Synchronizing submodule url for 'ae'
Synchronizing submodule url for 'win32'
➜ Digger git:(master) ✗ cat .gitmodules
[submodule "ae"]
	path = ae
	url = git://github.com/CyberShadow/ae.git
[submodule "win32"]
	path = win32
	url = https://github.com/CS-svnmirror/dsource-bindings-win32
➜ Digger git:(master) ✗ cat .git
.git/  .gitignore  .gitmodules
➜ Digger git:(master) ✗ rdmd --build-only digger
digger.d(12): Error: module main is in file 'ae/utils/main.d' which 
cannot be read
import path[0] = .
import path[1] = /usr/include/dmd/phobos
import path[2] = /usr/include/dmd/druntime/import
Failed: ["dmd", "-v", "-o-", "digger.d", "-I."]
➜ Digger git:(master) ✗ git submodule update
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 8 (delta 5), reused 4 (delta 1)
Unpacking objects: 100% (8/8), done.
 From git://github.com/CyberShadow/ae
    217b080..66502df  master     -> origin/master
    e8d867c..0b1cfc0  new-net    -> origin/new-net
  * [new branch]      old-net    -> origin/old-net
Submodule path 'ae': checked out '318ccc76669e9840f43b88e63bcfb1e461ce6d61'
➜ Digger git:(master) rdmd --build-only digger
➜ Digger git:(master)

No idea why git submodule update worked the second time.


More information about the Digitalmars-d mailing list