Re: [fossil-users] basic questions about fossil

2010-12-16 Thread saulgoode
Quoting Russ Paielli russ.paie...@gmail.com:

 ... At first I was interested in Git and BitKeeper. Then I discovered
 Bazaar, and I was almost ready to start using it, but I decided to take one
 more look at the options. When I saw fossil, I figured, with a name like
 that, it's a real long shot, but I'll take a look anyway. ...

You might be interested in visiting  
http://better-scm.berlios.de/comparison/comparison.html which is a  
website that provides a conspectus of the various source control  
management options currently available.

 The Bazaar website claims that one advantage of Bazaar over Git is that it
 properly handles renames of files and directories. That is important to me.
 I'm very particular about filenames and directory structure, and I don't
 want to feel that I am stuck with the first file name or directory structure
 I chose because changing it will confuse my version control system (or
 confuse the people using it). How does fossil compare to Bazaar in that
 regard?

My understanding is that Fossil supports renames of files and  
directories, but does not support merges that later use the deprecated  
name. This is something of a race condition and might be a concern for  
projects with lots of disparate contributors. My own experience is  
that by the time a project garners lots of contributors, the basic  
tree structure is fairly well sussed (and for few contributors lack of  
this support is not that problematic). Nonetheless, providing support  
for intelligent renames is on Fossil's TODO list.

 By the way, why do these version control systems insist on a comment? Yes, I
 understand that commenting is good practice, but does that mean it should be
 mandatory and the version control system should force me to write one? I
 tend to think not.

Fossil doesn't actually mandate that you enter a comment -- but it is  
generally a good idea.

___
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] Beginners question

2010-09-30 Thread saulgoode
Quoting David tw dtw...@gmail.com:

 Hello all,
 I have two branches of my project under fossil management, trunk and stable.
 My intention being to perform new developments in trunk and to keep stable
 for releases and bug fixes. These are set up in two directories
 ~/project/trunk and ~/project/stable.

This is not really the setup that is typically used with Fossil (or  
any other CMS). You want to have a directory called /project and  
then let Fossil handle the contents of the directory dependent upon  
what branch is checked out. There should be no need for you to  
maintain trunk and stable subdirectories (however, IF you were to  
do so then you would want to ensure that the stable subdirectory is  
not tracked in the trunk branch, and that the trunk subdirectory is  
not tracked in the stable branch).

If you feel it is better to maintain separate trunk and stable  
*directories*, I would propose that you handle them as separate  
checkouts from the same repository. The Fossil repository itself would  
not contain the directories.

$ mkdir trunk
$ cd trunk
$ fossil open /fossil_repos/project.fossil
$ fossil checkout trunk

$ cd ..
$ mkdir stable
$ cd stable
$ fossil open /fossil_repos/project.fossil
$ fossil checkout stable

With this setup, your role as a developer would depend upon which  
directory you are in. This is basically what would happen if two  
different developers were working on the code simultaneously, one on  
the stable branch and one on the trunk.

 Whilst in directory ~/project/stable I performed a commit. To my surprise,
 this ended up being a commit to the trunk branch.

Keep in mind that Fossil tracks whatever files that have been ADDed to  
the branch, regardless of where those files reside in your source  
tree. If you created a new stable branch by branching off of trunk  
then from the outset, stable will be tracking the same files that  
were being tracked in trunk (at the time of the branching). Unless  
you actually remove those trunk files (using 'fossil rm trunk/*' or  
somesuch), those trunk files will still be tracked during checkouts  
of the stable branch.

 ... Also there were new files
 included in the commit, and located in ~/project/stable, so these are also
 now included in trunk within fossil.

My guess is that this was caused by a somewhat separate issue. A  
common mistake I made when starting out was to create a new branch and  
then assume that I was then working in that newly created branch. This  
is not the case. One must explicitly switch to a newly created branch  
(using fossil co branch).

 How do I correct this? Can I move the commit to stable? Or can I undo the
 last action? (fossil undo)

You can't undo things in the sense of removing all traces of your  
mistake, but you can correct things by recommitting the appropriate  
checkouts to the appropriate branches. But you also have to fix the  
cause of the problem in the first place: that you have trunk files  
still being tracked in the stable branch -- and more importantly, that  
you are basically using branches incorrectly.

Personally, I would recommend that you start over with a new Fossil  
project, and port over the files from your current project. If you  
want to retain the editing history then you will have to copy the  
files (and then commit) for each checkout in the original. This  
procedure is not too bad if you only have a couple dozen checkouts in  
the original and it will also help you detect any similar errors that  
have occurred previously but have gone unnoticed.







___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


[fossil-users] Discussion of Better

2010-09-17 Thread saulgoode
In the following message, Schlomi Fish requested that a representative  
of Fossil assist in maintaining a Fossil entry for his Better SCM  
website.

http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg02478.html

While I am relatively inexperienced with Fossil and probably not  
qualified for fulfilling those duties, I think it'd be beneficial for  
Fossil to be represented. If nobody else wishes to undertake this  
task, I'd certainly be willing to do so; barring any objections. I  
will defer to anybody who'd rather do it themselves, or otherwise  
objects to me coordinating this activity..

I have attempted to address the request for information on Fossil's  
capability; and edited a copy of the XML file. The diff for creating  
my edited XML is available at  
http://www.flashingtwelve.brickfilms.com/Temp/fossil.diff

I have answered the questions to the best of my knowledge, but admit  
that my knowledge of Fossil yet complete. I have included a plain text  
version of my responses at the end of this post.

Criticism of the responses are welcome, whether they be wrong or just  
poorly worded.


 Repository Operations
 -

 Atomic Commits

 Support for atomic commits means that if an
 operation on the repository is interrupted
 in the middle, the repository will not be
 left in an inconsistent state. Are the
 check-in operations atomic, or can
 interrupting an operation leave the
 repository in an intermediate state?

Commits are not atomic.

 Files and Directories Moves or Renames

 Does the system support moving a file or directory to
 a different location while still retaining the history
 of the file? bNote:/b also see the next section
 about intelligent merging of renamed paths.

Moves and renames are supported. History is retained.

 Intelligent Merging after Moves or Renames

 If the system keeps tracks of renames, does it support
 intelligent merging of the files in the history after
 the rename? (For example, changing a file in a renamed
 directory, and trying to merge it).

No, renames are not intelligent.

 File and Directory Copies

 Does the version control system support copying
 files or directories to a different location at the
 repository level, while retaining the history?

Copying is not directly supported. Duplicating
the file and adding it to the tracking would not copy
the original file's history.

 Remote Repository Replication

 Does the system support cloning a remote repository to get
 a functionally equivalent copy in the local system? That
 should be done without any special access to the remote
 server except for normal repository access.

Yes. Entire repository can be downloaded without special
permission (the copy will not track upstream changes).
More traditional cloning requires authorization (this
is typically provided to 'anonymous').

 Propagating Changes to Parent Repositories

 Can the system propagate changes from one repository to
 another?

Yes.

 Repository Permissions

 Is it possible to define permissions on access to different
 parts of a remote repository? Or is access open for all?

Permissions are set for the whole repository.

 Changesets' Support

 Does the repository support changesets? Changesets are a way
 to group a number of modifications that are relevant to each
 other in one atomic package, that can be cancelled or
 propagated as needed.

Not directly. Changeset information is available in
manifest files but no commands are provided to
automate changeset operations.

 Tracking Line-wise File History

 Does the version control system have an option to track the
 history of the file line-by-line? I.e., can it show for each
 line at which revision it was most recently changed, and by
 whom?

No.

 Features
 

 Ability to Work only on One Directory of the Repository

 Can the version control system checkout only one directory of
 the repository? Or restrict the check-ins to only one
 directory?

No. Checkouts are of the entire repository, however,
commits can be limited to any subset of files (e.g., just
the contents of a subdirectory).

 Tracking Uncommited Changes

 Does the software have an ability to track the changes in the
 working copy that were not yet committed to the repository?

Yes. Using 'fossil diff'.

 Per-File Commit Messages

 Does the system have a way to assign a per-file commit message
 to the changeset, as well as a per-changeset message?

No. Commit messages are per check in.

 Technical Status
 

 Documentation

 How well is the system documented? How easy is it to
 get started using it?

Fossil is well documented. Manpage-type help is available
for all commands using 'fossil help'. Fossil also includes
a built-in web interface permitting easy visual exploration
and administration. There are also tutorials, user guides,
and WIKI available on the Web.

 Ease of Deployment

 How easy is it to deploy the software? What are
 the dependencies and 

Re: [fossil-users] Discussion of Better

2010-09-17 Thread saulgoode
Quoting Richard Hipp d...@sqlite.org:

 Thank you for taking on this task - my plate is full at the moment.

 Please see my edits below

Thanks to both you and zachtodd for your feedback.

I have changed answer to the 'annotate' question to Partial because  
Fossil's annotation seems to show the first commit in which the line  
was added, as opposed to the last modified criteria posed in the  
comparison's question (the question also implied that a full history  
of the line should be provided). If it is thought that first commit  
information is as useful as the last modified, I would change the  
Partial to something that reflects that view. Or perhaps there is an  
option to show the most recent? Or a way to track from the first  
commit down to the most recent?

I have updated the text as follows (I am only showing the questions  
whose answers have been changed).

Regards.

=
 Atomic Commits

 Support for atomic commits means that if an
 operation on the repository is interrupted
 in the middle, the repository will not be
 left in an inconsistent state. Are the
 check-in operations atomic, or can
 interrupting an operation leave the
 repository in an intermediate state?

Yes. Commits are atomic.

 Intelligent Merging after Moves or Renames

 If the system keeps tracks of renames, does it support
 intelligent merging of the files in the history after
 the rename? (For example, changing a file in a renamed
 directory, and trying to merge it).

No, renames are not intelligent (feature is on the TODO list).

 Tracking Line-wise File History

 Does the version control system have an option to track the
 history of the file line-by-line? I.e., can it show for each
 line at which revision it was most recently changed, and by
 whom?

Partial. Line-by-line history shows at which revision the line
was introduced.

 Tracking Uncommited Changes

 Does the software have an ability to track the changes in the
 working copy that were not yet committed to the repository?

Yes. Using 'fossil diff' or 'fossil gdiff'. Tracking status of
all files is also available.


___
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] Discussion of Better

2010-09-17 Thread saulgoode
Quoting Richard Hipp d...@sqlite.org:

 On Fri, Sep 17, 2010 at 2:50 PM,   
 saulgo...@flashingtwelve.brickfilms.comwrote:

 Quoting Richard Hipp d...@sqlite.org:

 I have changed answer to the 'annotate' question to Partial because
 Fossil's annotation seems to show the first commit in which the line
 was added, as opposed to the last modified criteria posed in the
 comparison's question (the question also implied that a full history
 of the line should be provided). If it is thought that first commit
 information is as useful as the last modified, I would change the
 Partial to something that reflects that view. Or perhaps there is an
 option to show the most recent? Or a way to track from the first
 commit down to the most recent?


 It should be showing the last modification.  If it isn't that's a bug.
 Please report the bug.

Annotate is behaving as you describe and I have updated the XML diff  
file (at http://flashingtwelve.brickfilms.com/Temp/fossil.diff). I  
submitted a documentation ticket  
(http://www.fossil-scm.org/index.html/tktview/a182bd01a9c8dde66b1f55637b0a3e23c4099b02)
 against the fact that the description provided by 'fossil help annotate' does 
not reflect the exhibited  
behavior.


=
Modification to XML file answer:

 Tracking Line-wise File History

 Does the version control system have an option to track the
 history of the file line-by-line? I.e., can it show for each
 line at which revision it was most recently changed, and by
 whom?

Yes. This capability is provided with the
'fossil annotate' command as well as through the
built-in web interface.

___
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] Corrupted database

2010-08-23 Thread saulgoode
Quoting Arjen Markus arjen.mar...@deltares.nl:

 Hi,

 some further information: I am cooperating in this project with Torsten
 Berg and he was able to handle the repository I was not. He made a few
 changes, sent it back and ... I can not handle the new one either!

 I have no idea what is going wrong. Maybe restart the computer and
 try again?

A while back I was experiencing similar symptoms and the problem was  
with my access permissions to the repository. I have since taken to  
creating a 'fossil' group (I'm on GNU/Linux) and authorizing everyone  
in that group access to the common repositories.

-rw-rw-r-- 1 saul  fossil   276480 2010-07-21 01:34 devilspie.fossil
-rw-rw-r-- 1 saul  fossil  2213888 2010-07-25 05:03 fossil.fossil
-rw-rw-r-- 1 david fossil 55362560 2010-08-23 10:57 oggap.fossil
-rw-rw-r-- 1 root  fossil   104448 2010-08-11 01:47 pkgusr.fossil
-rw-rw-r-- 1 saul  fossil 33495040 2010-08-03 11:54 reva.fossil
-rw-rw-r-- 1 saul  fossil   138240 2010-08-18 10:58 script-fu.fossil
-rw-rw-r-- 1 saul  fossil   787456 2010-07-18 17:18 uwm.fossil


___
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] Corrupted database

2010-08-23 Thread saulgoode
I was assuming (and my limited experience suggested) that the user  
that starts the server needs to have write access to the repository if  
commits are to be accepted (even if from syncing a clone). So if I  
(saul) wanted to commit changes to a repository created by David, I  
would have to start the server running as David (but I can't do that  
without his login password), or need to have been granted permissions  
to the database (which places us back at using group permissions). I  
suppose I could create a user dedicated to serving Fossil repos, but  
that is basically the same as creating a 'fossil' group (with  
additional steps required).

If I am missing out on a better way of handling this, I would be  
pleased to learn about it.

Quoting Michael Barrow mich...@barrow.me:

 Just curious why you would bother sharing the repo's through the filesystem
 when the HTTP method is so straightforward.

 On Mon, Aug 23, 2010 at 8:56 AM,   
 saulgo...@flashingtwelve.brickfilms.comwrote:

 Quoting Arjen Markus arjen.mar...@deltares.nl:

  Hi,
 
  some further information: I am cooperating in this project with Torsten
  Berg and he was able to handle the repository I was not. He made a few
  changes, sent it back and ... I can not handle the new one either!
 
  I have no idea what is going wrong. Maybe restart the computer and
  try again?

 A while back I was experiencing similar symptoms and the problem was
 with my access permissions to the repository. I have since taken to
 creating a 'fossil' group (I'm on GNU/Linux) and authorizing everyone
 in that group access to the common repositories.

 -rw-rw-r-- 1 saul  fossil   276480 2010-07-21 01:34 devilspie.fossil
 -rw-rw-r-- 1 saul  fossil  2213888 2010-07-25 05:03 fossil.fossil
 -rw-rw-r-- 1 david fossil 55362560 2010-08-23 10:57 oggap.fossil
 -rw-rw-r-- 1 root  fossil   104448 2010-08-11 01:47 pkgusr.fossil
 -rw-rw-r-- 1 saul  fossil 33495040 2010-08-03 11:54 reva.fossil
 -rw-rw-r-- 1 saul  fossil   138240 2010-08-18 10:58 script-fu.fossil
 -rw-rw-r-- 1 saul  fossil   787456 2010-07-18 17:18 uwm.fossil




___
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] Hosted fossil solution

2010-07-28 Thread saulgoode
Quoting James Turner ja...@calminferno.net:

 Currently I'm limiting 5 repositories per account, everything should  
  be considered in an alpha state, but so far everything seems to be   
 running smoothly. Let me know if you run into any issues or have   
 suggestions. Thanks.

I have registered and am attempting to learn how to work all this (I  
have used Fossil on remote servers on my home network but not over the  
Internet).

One issue encountered was that my e-mail domain was flagged as  
invalid. I believe this was owing to it containing more than a single  
period (flashingtwelve.brickfilms.com). You may want to check your  
validation algorithm.

I screwed up and did not properly note the password assigned after  
creating my first repository  
(https://chiselapp.com/user/saulgoode/repository/script-fu/) and can  
not log in as administrator now. If you would be so kind as to remove  
it when you get the chance, it would be much appreciated.

I created a second repository  
(https://chiselapp.com/user/saulgoode/repository/script-fu-sg/) and  
have been able to clone it successfully; however, when I tried to PUSH  
some changes back (I'd disabled autosync), I received a 302 Re-direct  
error. I think it may be trying to re-direct from HTTP to HTTPS but I  
am not sure (if I use the HTTPS URL then Fossil reports that it does  
not support HTTPS). It is quite possible that I am doing something  
wrong at this point as I am inexperienced at using some of Fossil's  
multi-user features.

Thank you for the opportunity to use your hosting. I will spend more  
time experimenting tomorrow but if there is anything you wish me to  
try, please ask.

Regards.

___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


[fossil-users] Accessing original check-in

2010-07-26 Thread saulgoode
I have encountered a problem which is in a way trivial, but it is also  
somewhat important to me.

THE PROBLEM

After creating a new repository and opening it, 'status' displays that  
it has been assigned a 'checkout' identifier; however, I am never able  
to access that 'checkout'. If I create a new branch off that origin,  
when I try to return to 'trunk', I receive a not a check-in error  
(I've included a transcript of a test session at the end of this post).

MY GOAL

I wish to use Fossil to maintain a directory of scripts and I would  
like to start a new branch whenever I create a new script, and to have  
that branch contain only the script file. In other words, if 'root' is  
the original empty check-in artifact, I want each script to be a  
branch off of 'root' (the scripts would be merged back to 'trunk').

A WORK-AROUND

If I first check-in a commit to trunk that includes an ADDed file  
(even an empty one), I can then use the original check-in ('root') for  
starting branches -- successfully being able to merge those branches  
back to trunk. I can even later delete the empty-file and remove it  
from 'trunk'.

WHY WORK-AROUND IS UNSATISFACTORY

Though the above work-around completely satisfies my personal needs, I  
am hoping to introduce some absolute beginners -- to both programming  
and Source Configuration Management -- to using Fossil to organize  
their programming activities. It is less than ideal that amongst the  
very first steps in getting started, it is necessary to perform a  
somewhat unintuitive work-around (it wouldn't be so bad if it came  
later in the course).

CONCLUSION

While my goal is admittedly an edge case, and branching off an empty  
check-out may be rather unintuitive itself, I do think this behavior  
is somewhat anomalous and should probably be considered a bug. The  
original check-out is assigned an ID and one is able to branch from  
that ID, yet it is otherwise not recognized as a valid check-out of  
'trunk'.

This is by no means critical, but it did seem worth mentioning. If  
anybody has any suggestions for simpler work-arounds -- or maybe I  
missed something completely obvious -- please let me know.

--
TRANSCRIPT OF TEST SESSION

$ fossil new $HOME/foo.fossil
  project-id: 22cc9378e7e9c90aa69ab5de4d2158082e2b84c5
  server-id:  4e110fd69e6c808f9b4b77da3450a674e51d0a5e
  admin-user: saul (initial password is 004d85)
$ fossil open $HOME/foo.fossil
$ fossil status
  repository:   /home/saul/foo.fossil
  local-root:   /home/saul/test/
  server-code:  4e110fd69e6c808f9b4b77da3450a674e51d0a5e
  checkout: ed9081561d84e261b5a0f3aaf0531fdb530feb57 2010-07-26  
21:57:18 UTC
  tags: trunk
$ fossil branch new bar trunk
  New branch: aa562d8538bbdfa72c44dbf3a8cd14d1925d6db1
$ fossil co bar
$ touch empty-file
$ fossil add empty-file
  ADDED  empty-file
$ fossil commit
  New_Version: d5a946e783821ce9a79866e13f920ec02a092f31
$ fossil co trunk
  fossil: object [ed9081561d] is not a check-in




___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users