Re: [fossil-users] Using Fossil SCM with Master Repositories held on a Flash Drive ?
On Jan 23, 2017, at 8:35 AM, Richard Hipp wrote: > > On 1/23/17, Warren Young wrote: >> >> Digital Ocean has a $5/month option that should be ridiculously overkill >> (512 MB of RAM, 20 GB SSD) and since they do hourly pricing and have a >> remote API, you could bring it up and down at need. If you just schedule it >> 8 hours a day 5 days a week, it would come to about $1.25 a month. > > I don't know about Digital Ocean, but other ISPs charge you by the > amount of time that your disk image exists, not the amount of time > your VM is actually running. True, but the Digital Ocean remote API lets you create and destroy whole VMs remotely. With a scripting system like Vagrant[*] you could bring the VM up in the time it takes to get coffee going in the morning, and destroy it in the evening before the occupancy sensors in the office start turning lights off. Or, just create a snapshot, download it, destroy the VM, recreate a fresh VM, upload last night’s snapshot, and revert to the snapshot. [*] https://www.digitalocean.com/community/tutorials/how-to-use-digitalocean-as-your-provider-in-vagrant-on-an-ubuntu-12-10-vps > price of 3 or 4 USB sticks, you could buy a Raspberry PI (or > equivalent), stick it on your local network, and run a Fossil server > on that! The advantage of the public VPS is that you don’t create a potential island-hopping situation. I’m totally happy to pay someone else to weather the script kiddie pounding. ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Using Fossil SCM with Master Repositories held on a Flash Drive ?
On 1/23/17, Warren Young wrote: > > Digital Ocean has a $5/month option that should be ridiculously overkill > (512 MB of RAM, 20 GB SSD) and since they do hourly pricing and have a > remote API, you could bring it up and down at need. If you just schedule it > 8 hours a day 5 days a week, it would come to about $1.25 a month. I don't know about Digital Ocean, but other ISPs charge you by the amount of time that your disk image exists, not the amount of time your VM is actually running. So I'm not sure about the $1.25/month option. I suspect you'd need to pay the full $5/month. > > That’s around the cost of the USB sticks you’re going to wear through with > the other plan. > Good point about comparing the cost to that of a USB stick. For the price of 3 or 4 USB sticks, you could buy a Raspberry PI (or equivalent), stick it on your local network, and run a Fossil server on that! -- D. Richard Hipp d...@sqlite.org ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Using Fossil SCM with Master Repositories held on a Flash Drive ?
On Jan 20, 2017, at 8:01 AM, Richard Hipp wrote: > > On 1/20/17, Javier Guerra Giraldez wrote: >> >> chiselapp.com offers private repositories. > > Or you can get a $10/month Linode (https://www.linode.com/pricing) and > set it up as your private server. Digital Ocean has a $5/month option that should be ridiculously overkill (512 MB of RAM, 20 GB SSD) and since they do hourly pricing and have a remote API, you could bring it up and down at need. If you just schedule it 8 hours a day 5 days a week, it would come to about $1.25 a month. That’s around the cost of the USB sticks you’re going to wear through with the other plan. Put it behind TLS,[*] and it’s as secure as it probably needs to be. [*] https://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg22907.html ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Using Fossil SCM with Master Repositories held on a Flash Drive ?
Thus said "Martin Irvine" on Fri, 20 Jan 2017 19:32:51 +1030: > To achieve the second objective, I expect to make a point of always > carrying a USB Flash Drive with me as I move from PC to PC. I expect > this Flash Drive should contain a number of repository files, one for > each project I am concerned with. You might also consider putting a copy of fossil.exe on the USB drive so that you don't have to download/install it on every PC. Andy -- TAI64 timestamp: 400058842033 ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Using Fossil SCM with Master Repositories held on a Flash Drive ?
Thus said "Martin Irvine" on Fri, 20 Jan 2017 19:32:51 +1030: > In my case, it seems to me the master repository would be the relevant > repository file on my Flash Drive, but when my Flash Drive is plugged > into the machine I am working on, the files on it are effectively > local, not remote. So, when I sit down to work at a PC, should I copy > the repository file for the project I need to work on onto the PC's > local hard drive, then open the version of the code I need to access > from this copy of the repository, or should I just open the project > repository directly from my Flash Drive ? I think the answer to that question depends on how much you want copies of your projects on those PCs. Does the PC that you attch your USB drive to need to have a copy of the project all the time, or only when you plug in the USB drive? If it needs to have access to the project after you have removed your USB drive, then you should clone the project from the USB drive to the PCs local drive and open a working directory there. Then when you plug in your USB to the PC, run ``fossil sync all'' (if you have more than one project) to synchronize all changes. If on the other hand, the PC does not need access to the project when the USB drive is not present, you could open up a working directory directly on the USB drive. Special consideration may need to be made if you are sharing the USB drive between multiple operating systems, but you already said you were working exclusively on Windows, so this shouldn't be a problem to worry about at this stage. One thing you do need to do, however, is to make sure that you sync your changes from your USB drive to somewhere else so that if your USB drive dies, you don't lose everything. Andy -- TAI64 timestamp: 400058841fd8 ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Using Fossil SCM with Master Repositories held on a Flash Drive ?
On 1/20/17, Artur Shepilko wrote: > > If I understood it correctly, your main criteria are: > 1) One flash drive -- use of flash drive to keep all "master" project > repos on it > 5) Keep it tidy :) -- leave no project files behind on the PCs > Let's keep in mind that flash drives are notoriously unreliable. They will wear out and fail suddenly and catastrophically. They are great for transferring information from one machine to another, but you should never keep valuable information only on a flash drive. Always assume that your flash drive will whip itself clean the next time you plug it in, and have a suitable recovery plan. -- D. Richard Hipp d...@sqlite.org ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Using Fossil SCM with Master Repositories held on a Flash Drive ?
This sounds familiar, a "pocket-sync" protocol or "virus-taxi" :) Needs a robust anti-virus for protection. If I understood it correctly, your main criteria are: 1) One flash drive -- use of flash drive to keep all "master" project repos on it 2) Many PCs -- work on any project at many field-PC's 3) Two-way sync -- sync project repo changes across all involved PC without the need for network/internet 4) Extra backup -- have a backup for the project repos 5) Keep it tidy :) -- leave no project files behind on the PCs Fossil is definitely suitable for such a "pocket" solution as it does not need an installation and can be run directly. Your case is a good example for DVCS use, yet lacking internet/network the only sync option is via local file-system. As was already mentioned, using the flash drive for both repos and work would make this self-contained. This way all changes are always on the flash drive, so the sync is kinda implicit. To enforce the central role of the flash drive, you may want to setup some kind of a "workspace" on it, maybe have it mapped to the same drive-letter on all of the PCs (with `subst` or `net use` command). Also add some scripts to assist you in setup and sync. For this to work out, you may need to have the flash drive partition set up with Everyone:Read/Write/Delete NTFS security, so that the potentially different user-SIDs on the PCs could write to the flash drive. OR, well, have it formatted FAT32. Also, you probably want to have the actual "master" repos set up on your own "trusted" PC, instead of the flash dirve for obvious reasons so it does not get lost-in-action :) POSSIBLE WORKFLOW plug to "trusted" PC: 1) setup actual "master" Fossil repos on your own "trusted" PC, add users, serve the repos if desired, backup appropriately 2) setup the flash-drive, format, populate with needed tools, scripts etc. 3) setup the flash-bound workspace environment 4) sync workspace with the "trusted" repos once plugged to any field-PC: 5) setup the flash-bound workspace environment 6) do work in the workspace, commit as needed (implicitly to the flash) 7) if can connect to the "trusted" PC, sync the repos once back at "trusted" PC: 8) setup the flash-bound workspace environment 9) sync workspace and "trusted" repos POSSIBLE WORKSPACE \devel |-env |-fossils |-tools |-projects |-builds Each project has its own repo in fossils: fossils\projectX.fossil Project work-copies are fetched from resp. fossil and created as needed (one only or per revision, PC, case etc.), commit/branch as needed: projects\projectX-try-something Preferrably do out-of-source builds, so it's easier to track source changes, or potentially re-assign build dir to host's HDD for speed: builds\projectX-try-something LOGICAL ENV DEVENV => %DEVDRIVE%\env DEVFOSSILS => %DEVDRIVE%\fossils DEVPROJECTS => %DEVDRIVE%\projects DEVBUILDS => %DEVDRIVE%\builds Environment variables are set up from script (shortcut), which would assign DEVDRIVE and open a CMD prompt in the workspace: \devel\env\setupdev.cmd DEVDRIVE is basically a substitute for FLASHDIRVE:\devel, whatever letter auto-assigned to the flash drive by the system. Preferably DEVDRIVE should be set the same on all PC's, perhaps some least used bottom letters (??W:) This allows re-use of the project work-copies on different field-PCs, as Fossil saves path of the opened Fossil repo. TWO-WAY REPO SYNC field-PC to flash-"master": it's implicit, just commit and update as needed from within the flash-bound workspace. flash-"master" to "trusted"-PC: It's bound to the way how the flash-"master" was cloned (//file, or URL), it should be saved in the repo. Preferably it's via URL, so you may sync even while on a field-PC (if networked): fossil sync EXAMPLE SESSION - plug the flash into a field-PC, open CMD prompt, run setup: F:\devel\env\setupdev - this assigns the DEVDRIVE, sets up environment, changes path to DEVPROJECTS: W:\projects - checkout a working-copy of a project repo mkdir projectX-try-something cd projectX-try-something fossil open "%DEVFOSSILS%\projectX.fossil" revision123 fossil user default %DEVUSER% --user %DEVUSER% - OR when exists already, sync local if needed fossil update - do development, test, commit changes fossil commit - done, clean up, deassign the DEVDRIVE, close prompt: closedev - plug the flash into "trusted"-PC, open CMD, run setup: H:\devel\env\setupdev - this assigns the DEVDRIVE, sets up environment, changes path to DEVPROJECTS: W:\projects - sync all repos to "trusted", script that walks through all .fossil files in DEVFOSSILS and does "fossil sync %TRUSTEDREPOURL%" syncrepos THE END :) That's the general idea, sorry for the long post. It's probably easier to implement this than describe. Hope you'd find this useful. On Fri, Jan 20, 2017 at 3:02 AM, Martin Irvine wrote: > Hi, > > > > I am new to Software Configuration Management systems, but am now interested > in using Foss
Re: [fossil-users] Using Fossil SCM with Master Repositories held on a Flash Drive ?
On 1/20/17, Javier Guerra Giraldez wrote: > On 20 January 2017 at 13:08, Richard Hipp wrote: >> But have you considered doing it using your network? Are all of your >> machines at least intermittently connected to a network? >> >> So on some central machine that is usually accessible to the others, >> put all of your master repositories in a folder named (for example) >> C:\fossils. > > > chiselapp.com offers private repositories. Or you can get a $10/month Linode (https://www.linode.com/pricing) and set it up as your private server. That gives that added advantage of being an off-site backup in case a disaster (ex: fire) destroys your whole lab. -- D. Richard Hipp d...@sqlite.org ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Using Fossil SCM with Master Repositories held on a Flash Drive ?
On 20 January 2017 at 13:08, Richard Hipp wrote: > But have you considered doing it using your network? Are all of your > machines at least intermittently connected to a network? > > So on some central machine that is usually accessible to the others, > put all of your master repositories in a folder named (for example) > C:\fossils. chiselapp.com offers private repositories. -- Javier ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Using Fossil SCM with Master Repositories held on a Flash Drive ?
On 1/20/17, Martin Irvine wrote: > > I am hoping that Fossil will assist me in making it as simple as > possible for me to ensure I always have all versions of the code for every > project accessible to me when I sit down to work at any particular PC. > Lots of good answers already on how to do this with flash drives But have you considered doing it using your network? Are all of your machines at least intermittently connected to a network? So on some central machine that is usually accessible to the others, put all of your master repositories in a folder named (for example) C:\fossils. Then on that machine run the command "fossil serve c:\fossils" and leave it running. Or you can set up a windows service using the "fossil winsrv" command - I normally run on Unix so I'm not as familiar with that approach, but is well documented and might work better for you. On all other machines do: "fossil clone http://first.machine.ip.addr/name-of-repo.fossil ." - this will clone the repositories on the other machines. They will autosync back to the master. Before going off-network, do "fossil all pull". Then you can work off network for a while, using the --nosync option when you commit. Then when you go back on network, just run "fossil all push" to transmit all changes from all repositories back to the masters. -- D. Richard Hipp d...@sqlite.org ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Using Fossil SCM with Master Repositories held on a Flash Drive ?
On Fri, Jan 20, 2017 at 10:02 AM, Martin Irvine wrote: > A possible additional complicating factor in the “right” way to do all this > is that typically, when I finish working at a PC I often will not want to > leave a copy of the source code or the repository on the PC (i.e., on a > customer’s hardware). I understand deleting the local copies of the > repositories undermines the redundancy and backup benefits of using a > Distributed SCM system, but I guess I will address this by leaving copies of > the repositories on my own PCs and also ensuring I regularly make backup > copies of the repository files on the Flash Drive. Up to this I was ready to suggest you to use pull/sync between the master copy (flash drive) and local copies on each computer. Since you don't want to leave working copies around the PCs, working with the flash drive only will do the trick, even if backups are much more important. Luca ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Using Fossil SCM with Master Repositories held on a Flash Drive ?
Hi, >From what I understand from your situation, is that you move between several computers. To not worry about spreading several copies of your repositories and/or working copies to these computers, I would suggest you to work solely on the flash drive. As you mention that your projects are relatively small, there should be no disk space problems storing everything on your flash drive. Quick start: 1. Open a DOS prompt 2. cd to your flash drive 3. Create the directory structure you want. (I use a single directory "repos" for all repositories, and a source directory with a subdirectory for each project's working copy. Your directory layout may differ.) 4. cd to the "repos" directory and create the repository: "fossil new yourproject.fossil" 5. cd to the source subdirectory and get a working copy: "fossil open /path/to/repos/yourproject.fossil" 6. Create/Edit files. 7. Add newly created files: "fossil add file1 file2 ..." 8. Commit changes: fossil commit -m "Your commit message" 9. Optional: View your repository in a browser: "fossil ui" Using one single point for your repository and for your working copy means that you never need to use "fossil update" nor "fossil clone". Best Regards, Johan El 20 ene. 2017 10:02, "Martin Irvine" escribió: > Hi, > > > > I am new to Software Configuration Management systems, but am now > interested in using Fossil. I have been reviewing the documentation > on-and-off for a few days, and have played with the program a little, but I > am still unsure how to most appropriately use it to meet my needs, so I > would appreciate any advice anyone would like to offer on the following use > scenario. > > > > I am working exclusively in Windows environments. I am a sole developer, > often working on a number of relatively small projects at a time. For the > time being at least, I do not expect to make much use of forking and > branching capabilities – I like to think my code development generally > progresses fairly linearly. But I regularly need to access and update my > code at a number of usually standalone PCs - that is, they are never > networked to each other and often do not even have internet access. > > > > I am hoping that Fossil will assist me in two ways, keeping track of > milestones in my codebases including providing the ability to easily > restore a previous version for testing purposes, and also making it as > simple as possible for me to ensure I always have all versions of the code > for every project accessible to me when I sit down to work at any > particular PC. > > > > To achieve the second objective, I expect to make a point of always > carrying a USB Flash Drive with me as I move from PC to PC. I expect this > Flash Drive should contain a number of repository files, one for each > project I am concerned with. I expect when I sit down at any particular PC > I should be able to extract from the relevant repository on this Flash > Drive whichever version of whichever project I need to access. Similarly, > when I “finish” working at this PC if I wish to retain any changes I have > made I expect I should “commit” these changes back to relevant repository > on the Flash Drive in some way. But the most appropriate way to do all > this is unclear to me. > > > > I understand Fossil is generally intended to work with a local copy of a > project’s repository on each machine’s local hard disk, and with a master > repository accessed remotely when required via a network or internet > connection. In my case, it seems to me the master repository would be the > relevant repository file on my Flash Drive, but when my Flash Drive is > plugged into the machine I am working on, the files on it are effectively > local, not remote. So, when I sit down to work at a PC, should I copy the > repository file for the project I need to work on onto the PC’s local hard > drive, then open the version of the code I need to access from this copy of > the repository, or should I just open the project repository directly from > my Flash Drive ? Additionally, if I should copy the repository onto the > local hard disk, should I simply copy the repository file using the > operating system, or should I use Fossil to clone it to the local hard disk > (I do not really understand the difference here) ? Then, when I finish > working at the PC, if I wish to incorporate any changes I have made back > into the repository on my Flash Drive, should I update this directly into > the repository on my Flash Drive, or into a copy of the repository on the > PC’s local hard disk ? If the later, should I then simply copy the updated > repository file onto my Flash Drive (overwriting the previous repository > file), or should I “pull” or “push” the changes into the repository file on > the Flash Drive – can I even do this, when the hard disk based repository > and the Flash Drive based repository files are effectively both local files > on the same PC ? I guess I'm getting a bit confused here
Re: [fossil-users] Using Fossil SCM with Master Repositories held on a Flash Drive ?
On Fri, 20 Jan 2017 19:32:51 +1030 "Martin Irvine" wrote: > Hi, > > > I am new to Software Configuration Management systems, but am now > interested in using Fossil. I have been reviewing the documentation > on-and-off for a few days, and have played with the program a little, > but I am still unsure how to most appropriately use it to meet my > needs, so I would appreciate any advice anyone would like to offer on > the following use scenario. > > > > I am working exclusively in Windows environments. I am a sole > developer, often working on a number of relatively small projects at > a time. For the time being at least, I do not expect to make much > use of forking and branching capabilities - I like to think my code > development generally progresses fairly linearly. But I regularly > need to access and update my code at a number of usually standalone > PCs - that is, they are never networked to each other and often do > not even have internet access. > > Hi, I've been using a flash drive for some time in a similar fashion as what you describe, but only for syncing, not as a working copy. In my case, I had the fossil repos sync with a repo in the flash drive. This can be done by setting autosync to off and syncing only before starting to work and just before leaving the computer for the day. This way the flash drive's repos act as 'master' or 'remote' repository. When beginning work in a computer for the first time you would only need to 'fossil clone' the fossil repo from the flash drive into a local fossil repo; then set autosync to off. To do this, you just need to mount the flash drive and then issue a 'fossil clone' command, passing the path to the fossil file in the flash drive as the location to clone from. If you want to keep a backup you just need to have a synced copy in your own computers. When you need to erase the repo in a client's host you just do so, as the master copy stays unaffected in the flash drive. Hope this helps. -- Roberto Henríquez Laurent robe...@freekeylabs.com ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
[fossil-users] Using Fossil SCM with Master Repositories held on a Flash Drive ?
Hi, I am new to Software Configuration Management systems, but am now interested in using Fossil. I have been reviewing the documentation on-and-off for a few days, and have played with the program a little, but I am still unsure how to most appropriately use it to meet my needs, so I would appreciate any advice anyone would like to offer on the following use scenario. I am working exclusively in Windows environments. I am a sole developer, often working on a number of relatively small projects at a time. For the time being at least, I do not expect to make much use of forking and branching capabilities - I like to think my code development generally progresses fairly linearly. But I regularly need to access and update my code at a number of usually standalone PCs - that is, they are never networked to each other and often do not even have internet access. I am hoping that Fossil will assist me in two ways, keeping track of milestones in my codebases including providing the ability to easily restore a previous version for testing purposes, and also making it as simple as possible for me to ensure I always have all versions of the code for every project accessible to me when I sit down to work at any particular PC. To achieve the second objective, I expect to make a point of always carrying a USB Flash Drive with me as I move from PC to PC. I expect this Flash Drive should contain a number of repository files, one for each project I am concerned with. I expect when I sit down at any particular PC I should be able to extract from the relevant repository on this Flash Drive whichever version of whichever project I need to access. Similarly, when I "finish" working at this PC if I wish to retain any changes I have made I expect I should "commit" these changes back to relevant repository on the Flash Drive in some way. But the most appropriate way to do all this is unclear to me. I understand Fossil is generally intended to work with a local copy of a project's repository on each machine's local hard disk, and with a master repository accessed remotely when required via a network or internet connection. In my case, it seems to me the master repository would be the relevant repository file on my Flash Drive, but when my Flash Drive is plugged into the machine I am working on, the files on it are effectively local, not remote. So, when I sit down to work at a PC, should I copy the repository file for the project I need to work on onto the PC's local hard drive, then open the version of the code I need to access from this copy of the repository, or should I just open the project repository directly from my Flash Drive ? Additionally, if I should copy the repository onto the local hard disk, should I simply copy the repository file using the operating system, or should I use Fossil to clone it to the local hard disk (I do not really understand the difference here) ? Then, when I finish working at the PC, if I wish to incorporate any changes I have made back into the repository on my Flash Drive, should I update this directly into the repository on my Flash Drive, or into a copy of the repository on the PC's local hard disk ? If the later, should I then simply copy the updated repository file onto my Flash Drive (overwriting the previous repository file), or should I "pull" or "push" the changes into the repository file on the Flash Drive - can I even do this, when the hard disk based repository and the Flash Drive based repository files are effectively both local files on the same PC ? I guess I'm getting a bit confused here. A possible additional complicating factor in the "right" way to do all this is that typically, when I finish working at a PC I often will not want to leave a copy of the source code or the repository on the PC (i.e., on a customer's hardware). I understand deleting the local copies of the repositories undermines the redundancy and backup benefits of using a Distributed SCM system, but I guess I will address this by leaving copies of the repositories on my own PCs and also ensuring I regularly make backup copies of the repository files on the Flash Drive. So any thoughts, experience or advice on the most appropriate way to use Fossil in the above scenario would be most welcome, thank you. ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users