Modern Smalltalks (Squeak, Pharo) have Monticello for code management, and Metacello for dependency management. These work 'in-image', easily and efficiently.
The older enterprisey Smalltalks had (have?) ENVY/Developer - reputedly an excellent and comprehensive version control system.
Modern Smalltalks (Squeak, Pharo) have Monticello for code management, and Metacello for dependency management. These work 'in-image', easily and efficiently.
See, this is what gets me about Smalltalk and other "cocooned" systems, such as original Lisps. The languages have awesomely powerful features that are only now being picked up by other languages, but the environments feel constricting. Don't get me wrong, they are probably awesome for developing, in those languages. But sometimes it's good to have competition, or even just choice to suit programmer need/style, and saying that Smalltalk has <some vc I've never heard of> is a big turn off. Why can't I use the vc of my choice, as I can with nearly ever other language out there? Why can't I use the editor/IDE of my choice, as I can with nearly every other language out there? Having tools so tightly coupled just feels like bad design decisions.
You're probably thinking of Smalltalk as just another 'application' or 'language'.
Smalltalk is its own operating system, with an intrinsic (object-oriented) language, and Smalltalk-specific applications. It's an alternative computing universe, and only runs in a VM because there's no native hardware, unlike with Unix/C.
There's so little competition with software because there are relatively few coders developing for Smalltalk. There's been some effort to develop a Git client; with more developers on board, who knows what else might be possible?
At the same time, it would be wrong to shoehorn software on this system into paradigms that work well in mainstream OSs. For instance, there's no real need for an editor with the comprehensive feature-set of Vim or Emacs, because ST code is not developed in that way!
Objective-Smalltalk ( http://objective.st/ ) is a work in progress that tries to combine the Unix and the Smalltalk side. On the one hand you can easily use ST in scripts, which are just small text files, as well as interoperate with (Objective-)C. On the other hand, you get hierarchical naming and use of filesystems and REST APIs from within the language.
The older enterprisey Smalltalks had (have?) ENVY/Developer - reputedly an excellent and comprehensive version control system.