[fossil-users] Amendments don't always survive rebuilds

2018-06-09 Thread Andy Goth
Some amendments don't consistently survive rebuilds and syncs.  I've 
noticed this with date changes and reparenting.  Possibly it affects 
other types of amendments as well, but those are the two I've spotted.


This has been plaguing me for years, but finally I have a repeatable 
test case.


Repository before rebuild:
https://drive.google.com/open?id=1-Ahs91NVigBX7uMk88wIBjClQj1yxGnm

Repository after rebuild:
https://drive.google.com/open?id=1CFzc9JyNQ5piSIO4YUqjSpqmmjPxmCsg

I constructed a repository full of time warps, much like in my previous 
email about the stray riser.  Then I used a bunch of amendments to 
straighten everything out.  But once I rebuilt, the dates got jumbled 
again, and not in the same configuration as when I started.  Some 
amendments survived, others didn't.


Here are the commands I used to create the repository:

f new test.fossil -admin-user username -date-override 2018-05-31
mkdir test
cd test
f open ../test.fossil
f user default username
id=1; for day in 15 13 16 12 17 11 18 10 19 09 20 08 21 07 22 06 23 05 
24 04 25 03 26 02 27 01; do f commit -f -m "$id" -tag "$id" 
-date-override "2018-06-$day"; ((++id)); done
for id in $(seq 1 26); do f amend -date "$(printf 2018-06-%02d "$id")" 
"$id"; done


And then, to mess it up again:

f rebuild

I could also have sync'ed to another repository, but here I'm just 
showing the simplest way I know to trigger the problem.  I wonder if the 
order in which artifacts are visited is impacting the outcome.


--
Andy Goth | 
___
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] fast-import crash (mark not declared)

2018-06-09 Thread Joerg Sonnenberger
On Fri, Jun 08, 2018 at 05:06:23PM +0300, Petr Ovtchenkov wrote:
> During attempt to export fossil's repo (tcl, http://core.tcl.tk/tcl) to git I 
> face with
> fast-import (fossil export --git --export-marks ../tcl-fossil/fossil.marks 
> ../tcl.fossil | git
> fast-import --export-marks=../tcl-fossil/git.marks) crash:

Hm. That repo has timewraps.

Joerg
___
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] [Feature-request] Unversioned files: unpack

2018-06-09 Thread Chris Rydalch
I don't think the patch attachment made it; here it is just in case:

Index: src/unversioned.c
==
--- src/unversioned.c
+++ src/unversioned.c
@@ -230,10 +230,13 @@
 **cat FILE ... Concatenate the content of FILEs to stdout.
 **
 **edit FILEBring up FILE in a text editor for modification.
 **
 **export FILE OUTPUT   Write the content of FILE into OUTPUT on disk
+**
+**unpack   Write all unversioned files to disk, matching
the
+** file name(s) in the local repository.
 **
 **list | lsShow all unversioned files held in the local
 ** repository.
 **
 **revert ?URL? Restore the state of all unversioned files in
the
@@ -372,10 +375,22 @@
 if( unversioned_content(g.argv[3], ) ){
   fossil_fatal("no such uv-file: %Q", g.argv[3]);
 }
 blob_write_to_file(, g.argv[4]);
 blob_reset();
+  }else if( memcmp(zCmd, "unpack", nCmd)==0 ){
+Blob content;
+Stmt q;
+verify_all_options();
+db_prepare(, "SELECT name FROM unversioned;");
+while( db_step()==SQLITE_ROW ){
+  const char *zName = db_column_text(, 0);
+  unversioned_content(zName, );
+  blob_write_to_file(, zName);
+}
+blob_reset();
+db_finalize();
   }else if( memcmp(zCmd, "hash", nCmd)==0 ){  /* undocumented */
 /* Show the hash value used during uv sync */
 int debugFlag = find_option("debug",0,0)!=0;
 fossil_print("%s\n", unversioned_content_hash(debugFlag));
   }else if( memcmp(zCmd, "list", nCmd)==0 || memcmp(zCmd, "ls", nCmd)==0 ){


On Sat, Jun 9, 2018 at 12:43 PM Chris Rydalch  wrote:

> Here is a patch to add ' fossil uv unpack', which exports each unversioned
> file local disk, using the name(s) from the local repository. Does have all
> the nice bells and whistles, but its worked for me so far.
>
>unpack   Write all unversioned files to disk, matching the
> file name(s) in the local repository.
>
> Would this be worth including in fossil?
>
> Thanks!
>
> On Tue, Apr 25, 2017 at 1:48 PM Chris Rydalch  wrote:
>
>> Yes, this would be great!
>>
>> On Tue, Apr 25, 2017 at 1:43 PM, Olivier R.  wrote:
>>
>>> Hello,
>>>
>>> It would be very useful if the repository could remember the folder of
>>> the unversioned files when we add them. Doing so, we could unpack all
>>> unversioned files with a simple command like:
>>> fossil uv unpack
>>>
>>> If a folder doesn’t exist anymore, we could recreate it with the option
>>> -f or --force, or ignore the files who have nowhere to be unpacked.
>>>
>>> If each unversioned file is associated with a folder, it would also be
>>> useful to have a way to edit it, via the CLI or the Web-UI, so that we
>>> could change where to unpack these files.
>>>
>>> Thanks.
>>> Olivier
>>> ___
>>> fossil-users mailing list
>>> fossil-users@lists.fossil-scm.org
>>> http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
>>>
>>
>>
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


[fossil-users] Fossil SlackBuild script

2018-06-09 Thread Andy Goth
I just submitted an update to the Fossil SlackBuild script.  Sorry, I 
haven't done this since version 2.3, and now we're on 2.6.


I took the opportunity to update the README file with a few new bullet 
points and features.  Here it is, pasted inline:


Fossil is a distributed version control and ticket tracking system
created by D. Richard Hipp, the primary author of SQLite.

Features:

- tamper-proof artifact record
- simple command-line interface
- customizable web interface with JSON, RSS, and built-in wiki
- online project documentation with full-text search capability
- online activity and ticket reports
- user accounts with access controls
- coherent versioning across all files
- straightforward branching and merging
- bisect searches to pinpoint behavior changes
- SHA3-256 and hardened SHA1 checksums
- FUSE filesystem makes all historical and branch revisions available
- synchronization via http, https, ssh, and local/network filesystems
- automated replication and backup
- git import/export and Subversion/CVS import
- nested checkouts to share common subtrees across related projects
- checkout directory not cluttered with administrative files
- support for Docker
- unversioned file area for builds, statistics, other ephemeral content
- optional PGP signing of commits
- private branch which are excluded from syncs until published
- bundles group a change set (e.g. a private branch) into a single file
- users can make their own repositories, no need for special privileges
- works in Windows as well as Linux and other Unix-like systems

Fossil can host the entire project development website, including the
download area, but it also can be used for individual projects with no
need for a shared server.

In addition to typical software development operations, one interesting
application is coordination and auditing of /etc and other configuration
files across a network of computers.

Content is stored in an SQLite database for atomicity, durability, and
effortless administration.

See Fossil in action online:

- https://fossil-scm.org/ - Fossil hosts its own development
- https://sqlite.org/src/ - Fossil originally created to manage SQLite
- https://core.tcl.tk/tcl/timeline?y=ci - Tcl/Tk migrated from CVS
- https://chiselapp.com/ - Free public hosting for Fossil projects

Key technical points:

- unified revision history tree spans the entire repository
- repository is a collection of artifacts identified by their checksums
- artifacts are broadly grouped into content and structural artifacts
- each check-in is tracked as a structural artifact known as a manifest
- manifests primarily list the full names and checksums of each file
- manifests can be amended by subsequent control artifacts
- in most cases, symbolic names refer to the latest matching check-in
- branches are implemented using propagating symbolic tags

--
Andy Goth | 
___
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] [Feature-request] Unversioned files: unpack

2018-06-09 Thread Chris Rydalch
Here is a patch to add ' fossil uv unpack', which exports each unversioned
file local disk, using the name(s) from the local repository. Does have all
the nice bells and whistles, but its worked for me so far.

   unpack   Write all unversioned files to disk, matching the
file name(s) in the local repository.

Would this be worth including in fossil?

Thanks!

On Tue, Apr 25, 2017 at 1:48 PM Chris Rydalch  wrote:

> Yes, this would be great!
>
> On Tue, Apr 25, 2017 at 1:43 PM, Olivier R.  wrote:
>
>> Hello,
>>
>> It would be very useful if the repository could remember the folder of
>> the unversioned files when we add them. Doing so, we could unpack all
>> unversioned files with a simple command like:
>> fossil uv unpack
>>
>> If a folder doesn’t exist anymore, we could recreate it with the option
>> -f or --force, or ignore the files who have nowhere to be unpacked.
>>
>> If each unversioned file is associated with a folder, it would also be
>> useful to have a way to edit it, via the CLI or the Web-UI, so that we
>> could change where to unpack these files.
>>
>> Thanks.
>> Olivier
>> ___
>> fossil-users mailing list
>> fossil-users@lists.fossil-scm.org
>> http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
>>
>
>
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users