Subversion log format in Japanese

2012-03-20 Thread Berin Babcock-McConnell

Hello,

I have a question regarding the format of the date displayed in the log 
of a repository when using a Japanese locale.  Specifically, the format 
of the "human timestamp format suffix" (as it is described in 
libsvn_subr/time.c) doesn't seem to be quite right and I'm wondering if 
there is a reason for the format as it is.


For example, if you were to execute

$ svn log http://svn.apache.org/repos/asf/subversion

in English you would see date lines such as

"r1302758 | hwright | 2012-03-20 11:34:26 +0900 (Tue, 20 Mar 2012) | 14 
lines"


The "(Tue, 20 Mar 2012)" part is dictated by the "human timestamp format 
suffix" in libsvn_subr/time.c and in Japanese if you execute the same 
command you get,


"r1302758 | hwright | 2012-03-20 11:34:26 +0900 (火, 20  3月 2012) | 14 
lines"


This doesn't seem to be right because the order is the exact opposite of 
what one would expect (normally this would be ordered as year, month, 
day, day of week) and only the month has the character for month 
(whereas the day and year do not have the characters for day and year so 
there is a lack of consistency).


In other words, I would expect that in Japanese I would get something like,

"r1302758 | hwright | 2012-03-20 11:34:26 +0900 (2012年3月20日 (火)) | 
14 lines"


I have adjusted this on my system by changing the msgstr for msgid " 
(%a, %d %b %Y)" from " (%a, %d %b %Y)" to " (%x (%a))".


This feels like a bug to me and I looked at the latest version of the 
Japanese po file (revision 1302772, line 6238) and I see that the format 
is still " (%a, %d %b %Y)".  I have googled around a bit and looked in 
through the issue list, etc, and I haven't found any discussion on this 
and I'm wondering if there is a particular reason for this format or is 
it just that nobody has said anything yet or...?


Berin


Re: Subversion log format in Japanese

2012-03-20 Thread Stefan Sperling
On Tue, Mar 20, 2012 at 04:24:11PM +0900, Berin Babcock-McConnell wrote:
> Hello,
> 
> I have a question regarding the format of the date displayed in the
> log of a repository when using a Japanese locale.  Specifically, the
> format of the "human timestamp format suffix" (as it is described in
> libsvn_subr/time.c) doesn't seem to be quite right and I'm wondering
> if there is a reason for the format as it is.
> 
> For example, if you were to execute
> 
> $ svn log http://svn.apache.org/repos/asf/subversion
> 
> in English you would see date lines such as
> 
> "r1302758 | hwright | 2012-03-20 11:34:26 +0900 (Tue, 20 Mar 2012) |
> 14 lines"
> 
> The "(Tue, 20 Mar 2012)" part is dictated by the "human timestamp
> format suffix" in libsvn_subr/time.c and in Japanese if you execute
> the same command you get,
> 
> "r1302758 | hwright | 2012-03-20 11:34:26 +0900 (火, 20  3月 2012) |
> 14 lines"
> 
> This doesn't seem to be right because the order is the exact
> opposite of what one would expect (normally this would be ordered as
> year, month, day, day of week) and only the month has the character
> for month (whereas the day and year do not have the characters for
> day and year so there is a lack of consistency).
> 
> In other words, I would expect that in Japanese I would get something like,
> 
> "r1302758 | hwright | 2012-03-20 11:34:26 +0900 (2012年3月20日 (火))
> | 14 lines"
> 
> I have adjusted this on my system by changing the msgstr for msgid "
> (%a, %d %b %Y)" from " (%a, %d %b %Y)" to " (%x (%a))".
> 
> This feels like a bug to me and I looked at the latest version of
> the Japanese po file (revision 1302772, line 6238) and I see that
> the format is still " (%a, %d %b %Y)".  I have googled around a bit
> and looked in through the issue list, etc, and I haven't found any
> discussion on this and I'm wondering if there is a particular reason
> for this format or is it just that nobody has said anything yet
> or...?

Did you see this part of the comment above the human-readable date
format string?

 * [..] The
 * human explanatory part is generated by apr_strftime, which means
 * that its generation can be affected by locale, it can fail and it
 * doesn't need to be constant in size. In other words, perfect to be
 * converted to a configuration option later on.

IOW, there are many strftime() format flags people might want to use.
The correct date format can be based on the locale. But it might just
as well be based on personal preferences.

So the strftime() format string for the human-readable part of the date
is hardcoded in the code right now and it is unfortunate that this looks
bad in some locales.

Is there an alternative strftime() format string that would produce
the desired result in English, Japanese and any other language?
If so, we could use that instead.

Or we could add a new feature to make the format string configurable.
As the comment suggests, there could be a client-side configuration
option that allows users to specify an strftime() compatible format
string that Subversion should use here, with the current format
string as default.

Would you like to submit a patch that implements either of these approaches?


RE: preventing commits (this is *not* a classic hook question)

2012-03-20 Thread Bob Archer
> Hello,
> 
> I'm wondering if there is any strategy for temporary preventing people from
> committing to a svn repository, without the person who sets the hook (or sth
> similar) being the admin of the svn repository. Thus, in this case, there is 
> no
> option to directly access the /hooks/ folder.

Create a project in your repository that contains a config file of some type. 
Give write access to this path only to those people that you want to be able to 
enable/disable checkins.

Create a working copy of said config project and check it out on your svn 
server. Have your hook script update the working copy (or perhaps have a cron 
job that updates this wc every 60 seconds or whatever) and read this config 
file to determine if commits are allowed. 

All the users will have to do is edit the config file and commit it. 

BOb


> 
> A "poor man's" option could be working with locks. But, recursively locking a
> large repo path could be inefficient, and locks can be stolen anyway. So it 
> looks
> like the wrong approach from many perspectives.
> 
> Any idea for preventing commits, for a specific time, without being able to
> directly accessing the hooks folder?
> If the access is through svn+ssh and you can be granted access to the
> authorized_keys, you can tweak it to read-only. If it's an Apache based access
> with HTTPS, you can manipulate the Apache config (which requires reloading
> the Apache server configuration, or control of a .htaccess file)
> 
> Means vary depending on which technology you use and what you *do* have
> access to.


Call svn cat for all files modified or added in a given revision

2012-03-20 Thread OBones

Hello all,

Using svn cat I can see the state of a file at a given revision.
As it turns out, I have had in the past some files that were commit with 
inconsistent line endings and that are making analysis tools stop 
because of this.
What I want to do is find which (file, revision) pairs are impacted so 
that I can go back in the past and fix those invalid commits (using 
dump/reload).


However, I'm having a hard time finding a way to extract a list of 
modified or added files in a given revision so that I could give that 
list to the svn cat command that stops with an error when the above 
situation arises.
And then, once this works, I'd put all this in a loop going from the 
first revision to the last one.


I don't mind if this takes time, and I have no preference as to what 
operating system this should run under between Linux and Windows
I believe using Linux would be much simpler, but still, I can't figure 
out how to parse the result of svn log -v so that I can extract the 
filenames to give to svn cat.

If need be, I can work out of a working copy.

I would very much appreciate any help on this matter

Regards
Olivier


Re: Subversion log format in Japanese

2012-03-20 Thread Berin Babcock-McConnell

(2012年03月20日 21:04), Stefan Sperling wrote:

On Tue, Mar 20, 2012 at 04:24:11PM +0900, Berin Babcock-McConnell wrote:

Hello,

I have a question regarding the format of the date displayed in the
log of a repository when using a Japanese locale.  Specifically, the
format of the "human timestamp format suffix" (as it is described in
libsvn_subr/time.c) doesn't seem to be quite right and I'm wondering
if there is a reason for the format as it is.

For example, if you were to execute

$ svn log http://svn.apache.org/repos/asf/subversion

in English you would see date lines such as

"r1302758 | hwright | 2012-03-20 11:34:26 +0900 (Tue, 20 Mar 2012) |
14 lines"

The "(Tue, 20 Mar 2012)" part is dictated by the "human timestamp
format suffix" in libsvn_subr/time.c and in Japanese if you execute
the same command you get,

"r1302758 | hwright | 2012-03-20 11:34:26 +0900 (火, 20  3月 2012) |
14 lines"

This doesn't seem to be right because the order is the exact
opposite of what one would expect (normally this would be ordered as
year, month, day, day of week) and only the month has the character
for month (whereas the day and year do not have the characters for
day and year so there is a lack of consistency).

In other words, I would expect that in Japanese I would get something like,

"r1302758 | hwright | 2012-03-20 11:34:26 +0900 (2012年3月20日 (火))
| 14 lines"

I have adjusted this on my system by changing the msgstr for msgid "
(%a, %d %b %Y)" from " (%a, %d %b %Y)" to " (%x (%a))".

This feels like a bug to me and I looked at the latest version of
the Japanese po file (revision 1302772, line 6238) and I see that
the format is still " (%a, %d %b %Y)".  I have googled around a bit
and looked in through the issue list, etc, and I haven't found any
discussion on this and I'm wondering if there is a particular reason
for this format or is it just that nobody has said anything yet
or...?


Did you see this part of the comment above the human-readable date
format string?

  * [..] The
  * human explanatory part is generated by apr_strftime, which means
  * that its generation can be affected by locale, it can fail and it
  * doesn't need to be constant in size. In other words, perfect to be
  * converted to a configuration option later on.

IOW, there are many strftime() format flags people might want to use.
The correct date format can be based on the locale. But it might just
as well be based on personal preferences.

So the strftime() format string for the human-readable part of the date
is hardcoded in the code right now and it is unfortunate that this looks
bad in some locales.

Is there an alternative strftime() format string that would produce
the desired result in English, Japanese and any other language?
If so, we could use that instead.

Or we could add a new feature to make the format string configurable.
As the comment suggests, there could be a client-side configuration
option that allows users to specify an strftime() compatible format
string that Subversion should use here, with the current format
string as default.

Would you like to submit a patch that implements either of these approaches?


Yes, I did notice that comment.  I also noticed the following comment in 
the po file,


  TRANSLATION-FIXME: If APR supported reordering of
  format indicators Human explanatory part, generated
  by apr_strftime as "Sat, 01 Jan 2000"

To be honest neither made much sense to me because my understanding is 
that the locale dependent string is getting printed out.  In other 
words, Subversion takes human_timestamp_format_suffix and asks for the 
format string that is appropriate for the current locale.


If there were an alternate strftime() format string that produces the 
correct result in all languages that would be great.  But it seems that 
there is not and that is why there is a localization string in the po 
file, right?


I can see why it might be nice to give people a slightly more flexible 
method for overriding the format string than updating their local mo 
file and in googling this I got the feeling some client (maybe 
Turtoise?) allows you to do this with properties (although I'm not sure 
since I didn't pursue this)...


But I'm suggesting that the current string for 
human_timestamp_format_suffix in the ja.po file isn't the best.


I've noticed that many other languages have 
human_timestamp_format_suffix strings that differ from the default and 
I'm wondering why this is not the case with Japanese?


Re: Call svn cat for all files modified or added in a given revision

2012-03-20 Thread Andy Levy
On Tue, Mar 20, 2012 at 10:39, OBones  wrote:
> Hello all,
>
> Using svn cat I can see the state of a file at a given revision.
> As it turns out, I have had in the past some files that were commit with
> inconsistent line endings and that are making analysis tools stop because of
> this.

Can you change analysis tools to one that can handle this condition?

> What I want to do is find which (file, revision) pairs are impacted so that
> I can go back in the past and fix those invalid commits (using dump/reload).
>
> However, I'm having a hard time finding a way to extract a list of modified
> or added files in a given revision so that I could give that list to the svn
> cat command that stops with an error when the above situation arises.
> And then, once this works, I'd put all this in a loop going from the first
> revision to the last one.

svn log --verbose -rX will give you a list of all paths touched in
revision X. You'll need to do some parsing to extract just the paths
vs. the other log data. If you're handy with XML, you can use svn log
--verbose --xml -rX and then use XPath to extract just the paths.

To parse the output of svn log --verbose for this project, look for
any line starting with one or more letters and/or spaces, followed by
a space, followed by a slash. From that space to the end of the line
is the path that was touched. The regex should be something close to
this:

\b[\w\s]+(\/*)\b


possible switch bug in conjunction with file-externals

2012-03-20 Thread Schludi Wolfgang
attached is my shell-script "svn-bug.sh" to reproduce the error.
also attached is the logfile from "bash -x ./svn-bug.sh > svn-bug.out 2>&1"

short description:
I replaced some files in some branches with file-externals.
when switching between these different branches (with real files and with 
file-externals) the files get lost.
even worse: when being in that state, svn doesn't tell me that something is 
wrong
ok, I once get an error message from the switch command, but since my project 
trees are very large, the error message gets scrolled out.

questions:

* did I miss some important informations?

* is this a bug, or did I do something wrong or misunderstood something?

* is the bug already in the issue tracker?

* do I report the bug to the issue tracker or does one of you gurus 
report the issue?

regards, Schludi

Wolfgang Schludi
Dipl.-Inf. (FH)
___
stb ag
Stettenstrasse 6
D-86150 Augsburg

Phone: +49 (0) 821 319876-29
Mobile:
Fax: +49 (0) 821 319876-80
E-mail: wolfgang.schl...@stb-ag.com
Internet: http://www.stb-ag.com

Vertretungsberechtigter VorstandDr. Stefan Berchtold, Markus H?vermann
Registergericht Amtsgericht Augsburg
Registernummer  HRB 2083
Umsatzsteuer-Identifikationsnummer
gem?? ? 27 a Umsatzsteuergesetz DE 199 299 766
Aufsichtsratsvorsitzender   Alexander Schmitz-Elsen


svn-bug.sh
Description: svn-bug.sh


svn-bug.out
Description: svn-bug.out


Re: Subversion log format in Japanese

2012-03-20 Thread Stefan Sperling
On Tue, Mar 20, 2012 at 11:46:58PM +0900, Berin Babcock-McConnell wrote:
> If there were an alternate strftime() format string that produces
> the correct result in all languages that would be great.  But it
> seems that there is not and that is why there is a localization
> string in the po file, right?

There is this comment in fr.po:

# Hmmm... what about "%x" (preferred date representation in locale)
# instead?

> I can see why it might be nice to give people a slightly more
> flexible method for overriding the format string than updating their
> local mo file and in googling this I got the feeling some client
> (maybe Turtoise?) allows you to do this with properties (although
> I'm not sure since I didn't pursue this)...
> 
> But I'm suggesting that the current string for
> human_timestamp_format_suffix in the ja.po file isn't the best.
> 
> I've noticed that many other languages have
> human_timestamp_format_suffix strings that differ from the default
> and I'm wondering why this is not the case with Japanese?

I don't really know either. This subject is new to me, too.

You're right that there is precedent for changing the format string
in localised text and also re-arrange the format specifiers (ko.po,
pl.po, and zh_CN.po).

So as a first step, we could fix the format string in ja.po as you
suggest. Do you want to send a patch for that?
See http://subversion.apache.org/docs/community-guide/general.html#patches
and http://subversion.apache.org/docs/community-guide/l10n.html for
background information about translations.

We could also investigate if %x is acceptable and works as expected
everywhere.

Choose whichever path forward you prefer :)


Re: preventing commits (this is *not* a classic hook question)

2012-03-20 Thread Lorenz
Bob Archer wrote:

>> Hello,
>> 
>> I'm wondering if there is any strategy for temporary preventing people from
>> committing to a svn repository, without the person who sets the hook (or sth
>> similar) being the admin of the svn repository. Thus, in this case, there is 
>> no
>> option to directly access the /hooks/ folder.
>
>Create a project in your repository that contains a config file of some type.
>Give write access to this path only to those people that you want to be able to
>enable/disable checkins.
>
>Create a working copy of said config project and check it out on your svn 
>server.
>Have your hook script update the working copy (or perhaps have a cron job that
>updates this wc every 60 seconds or whatever) and read this config file to
>determine if commits are allowed. 
>
>All the users will have to do is edit the config file and commit it. 


slight modification to that solution:

Create a revprop in revision 0 in your repository that contains a the
block/noblock information
Give write access to this revprop only to those people that you want
to be able to enable/disable checkins.

Have your hook script check this revprop to determine if commits are
allowed. 

All the users will have to do is edit the revprop (no commit
required). 


Original version has the side benefit of providing an audit trail for
the configuration changes.
-- 

Lorenz



Re: predecessor count for the root node-revision is wrong message

2012-03-20 Thread Daniel Shahaf
Daniel Shahaf wrote on Tue, Mar 20, 2012 at 00:49:06 +0200:
> The time until 1.7.5 is counted in weeks, and 1.6.18 is scheduled to be
> released next week.
> 

The fix was merged to 1.6.x@HEAD today and barring surprises will be
included in 1.6.18.


Re: SVN externals (externals failed, already locked)

2012-03-20 Thread Matthew J Fletcher

On 13/03/12 18:07, Matthew J Fletcher wrote:

Hi,

I've been expermenting with SVN externals and found an issue which i
dont fully understand. My repository is as follows;


--

+Play (with and extern to URL "https://swserver:8443/svn/Play/Shared
Sources" Local Path "Project 3")

- Project 3 (externed)
-> shared.txt

- Project 2 (with an extern to URL
"https://swserver:8443/svn/Play/Shared Sources" Local Path "Outstation
Files")
-> -> Outstation Files (externed)
-> -> -> shared.txt
-> -> unieque.txt

-> Project 1 (with an extern to URL
"https://swserver:8443/svn/Play/Shared Sources" Local Path "osfiles")
-> -> osfiles (externed)
-> -> -> shared.txt
-> -> unieque.txt

- Shared Sources
-> shared.txt

-

All the externs work as expected and changes to files in "Shared
Sources" are reflected across the 3 projects. However when doing an
update/checkout i get the following error " 'External failed Project 3'
is allready locked via ."

I suspect that its because i am external'ing not into a seperate folder,
whereas in "Project 1" and "Project 2" the "Shared Sources" go in there
own folder. However the externals do work as expected.

I am using subversion 1.7.4 (same on server), via TortoiseSVN.



Hi,

Has anyone tried to do this before and encountered this problem ? or can 
offer some advice on this usage of externs.



regards

- Matthew J Fletcher



RE: preventing commits (this is *not* a classic hook question)

2012-03-20 Thread Michael Hüttermann
Hello Bob, Nico, Les,
thanks for your pointers. Great help, exactly what I've looked for. Thanks!!

Michael



>> Hello,
>>
>> I'm wondering if there is any strategy for temporary preventing people
>> from
>> committing to a svn repository, without the person who sets the hook (or
>> sth
>> similar) being the admin of the svn repository. Thus, in this case,
>> there is no
>> option to directly access the /hooks/ folder.
>
> Create a project in your repository that contains a config file of some
> type. Give write access to this path only to those people that you want to
> be able to enable/disable checkins.
>
> Create a working copy of said config project and check it out on your svn
> server. Have your hook script update the working copy (or perhaps have a
> cron job that updates this wc every 60 seconds or whatever) and read this
> config file to determine if commits are allowed.
>
> All the users will have to do is edit the config file and commit it.
>
> BOb
>
>
>>
>> A "poor man's" option could be working with locks. But, recursively
>> locking a
>> large repo path could be inefficient, and locks can be stolen anyway. So
>> it looks
>> like the wrong approach from many perspectives.
>>
>> Any idea for preventing commits, for a specific time, without being able
>> to
>> directly accessing the hooks folder?
>> If the access is through svn+ssh and you can be granted access to the
>> authorized_keys, you can tweak it to read-only. If it's an Apache based
>> access
>> with HTTPS, you can manipulate the Apache config (which requires
>> reloading
>> the Apache server configuration, or control of a .htaccess file)
>>
>> Means vary depending on which technology you use and what you *do* have
>> access to.
>
>



Re: SVN externals (externals failed, already locked)

2012-03-20 Thread Philip Martin
Matthew J Fletcher  writes:

> I've been expermenting with SVN externals and found an issue which i
> dont fully understand. My repository is as follows;
>
>
> --
>
> +Play (with and extern to URL "https://swserver:8443/svn/Play/Shared
> Sources" Local Path "Project 3")
>
> - Project 3 (externed)
> -> shared.txt
>
> - Project 2 (with an extern to URL
> "https://swserver:8443/svn/Play/Shared Sources" Local Path "Outstation
> Files")
> -> -> Outstation Files (externed)
> -> -> -> shared.txt
> -> -> unieque.txt
>
> -> Project 1 (with an extern to URL
> "https://swserver:8443/svn/Play/Shared Sources" Local Path "osfiles")
> -> -> osfiles (externed)
> -> -> -> shared.txt
> -> -> unieque.txt
>
> - Shared Sources
> -> shared.txt

I'm having difficulty making sense of that description.

svnadmin create repo
svn co file://`pwd`/repo wc
svn mkdir wc/Play
svn mkdir wc/Play/SharedSources
echo foo > wc/Play/SharedSources/shared.txt
svn add wc/Play/SharedSources/shared.txt
svn mkdir wc/Play/Project1
svn mkdir wc/Play/Project2
svn ps svn:externals '^/Play/SharedSources Outstation' wc/Play/Project1
svn ps svn:externals '^/Play/SharedSources osfiles' wc/Play/Project2
svn ps svn:externals '^/Play/SharedSources Project3' wc/Play
# or maybe one svn:externals on Play
# ^/Play/SharedSources Project3
# ^/Play/SharedSources Project2/Outstation
# ^/Play/SharedSources Project1/osfiles
svn ci -mm wc
svn up wc

echo mod >> wc/Play/SharedSources/shared.txt
svn ci -mm wc
svn up wc

> All the externs work as expected and changes to files in "Shared
> Sources" are reflected across the 3 projects. However when doing an
> update/checkout i get the following error " 'External failed Project
> 3' is allready locked via ."

I don't understand that either.  How can the externs "work as expected"
if neither checkout nor update work?

> I suspect that its because i am external'ing not into a seperate
> folder, whereas in "Project 1" and "Project 2" the "Shared Sources" go
> in there own folder. However the externals do work as expected.

-- 
Philip


random sort of svn status and svn diff

2012-03-20 Thread Sérgio Basto
Hi, I am facing a problem 
I do a svn diff | lsdiff 
I got file in random order , also happens with svn status 
How I sort diff and status , or at least don't get random results 
I am using subversion-1.6.17-5.fc16.x86_64 on Fedora 17 
I had clean my $HOME/.subversion nothing change, happens with at least 2
repos ( all that I tested )  

Example: 

#svn diff | lsdiff rsst2.config stop_prod.sh test.sh start_prod.sh
local.defs rsst.defs 
#svn diff | lsdiff local.defs rsst.defs rsst2.config stop_prod.sh
test.sh start_prod.sh 
#svn diff | lsdiff test.sh start_prod.sh local.defs rsst.defs
rsst2.config stop_prod.sh 
Thanks, 
-- 
Sérgio M. B.



Re: random sort of svn status and svn diff

2012-03-20 Thread Ryan Schmidt

On Mar 20, 2012, at 19:17, Sérgio Basto wrote:

> Hi, I am facing a problem 
> I do a svn diff | lsdiff 
> I got file in random order , also happens with svn status 

Correct, Subversion does not output these in a sorted order.

> How I sort diff and status , or at least don't get random results 

You can pipe the result to the "sort" program somehow.





Re: random sort of svn status and svn diff

2012-03-20 Thread Sérgio Basto
On Tue, 2012-03-20 at 19:23 -0500, Ryan Schmidt wrote: 
> On Mar 20, 2012, at 19:17, Sérgio Basto wrote:
> 
> > Hi, I am facing a problem 
> > I do a svn diff | lsdiff 
> > I got file in random order , also happens with svn status 
> 
> Correct, Subversion does not output these in a sorted order.

but one month ago , svn diff have always same output , now it is
random , is a bug or regression.
why the output shouldn't be sorted by name or something else ? 
or why svn don't have a sort option this is insane . 

I use patchutils to edit diffs more than 4 years and now with random
order, mess up all results .

I not say that output have one order is seems random , I'm saying every
time I do a svn diff or status the order of files change OMG. 


> > How I sort diff and status , or at least don't get random results 
> 
> You can pipe the result to the "sort" program somehow.
> 
> 
> 

-- 
Sérgio M. B.



Re: random sort of svn status and svn diff

2012-03-20 Thread Philip Martin
Sérgio Basto  writes:

> On Tue, 2012-03-20 at 19:23 -0500, Ryan Schmidt wrote: 
>> On Mar 20, 2012, at 19:17, Sérgio Basto wrote:
>> 
>> > Hi, I am facing a problem 
>> > I do a svn diff | lsdiff 
>> > I got file in random order , also happens with svn status 
>> 
>> Correct, Subversion does not output these in a sorted order.
>
> but one month ago , svn diff have always same output , now it is
> random , is a bug or regression.

That's the result of a change in the APR hash table implementation.
Subversion often uses "hash order" and in the past this was always the
same for a given set of hash keys.  The new APR implementation means
that this order is no longer constant.

> why the output shouldn't be sorted by name or something else ? 
> or why svn don't have a sort option this is insane . 

It could be done but nobody has done it yet, the APR change is only a
few weeks old.  Sorting may need to be optional as there is a cost to
sorting that not everybody would want.

-- 
Philip


Re: preventing commits (this is *not* a classic hook question)

2012-03-20 Thread David Weintraub
I have a pre-commit hook that stores its configuration inside your
repository. You'll need access to the Subversion server to set it up,
but once it's setup, you can control access by checking out the
control file from the repository, making your changes, and then
checking it back in.

This is a modification of a hook that I've been using for years.
Originally, the control file was kept on the server -- usually inside
the hooks directory. However, that meant logging onto the server, and
that was getting too difficult to do all the time. Besides, this way,
I can track who changed the control file and why.

What prevents anyone from changing the control file? The control file
is configured, so only the administrators can modify it.

You can take a look at it at
https://github.com/qazwart/SVN-Precommit-Kitchen-Sink-Hook. (Yes, a
Subversion hook is stored in GitHub). If you need any further help,
contact me at da...@weintraub.name, and I'll see what I can do.

-- 
David Weintraub
qazw...@gmail.com


Re: random sort of svn status and svn diff

2012-03-20 Thread Sérgio Basto
On Wed, 2012-03-21 at 00:51 +, Philip Martin wrote: 
> Sérgio Basto  writes:
> 
> > On Tue, 2012-03-20 at 19:23 -0500, Ryan Schmidt wrote: 
> >> On Mar 20, 2012, at 19:17, Sérgio Basto wrote:
> >> 
> >> > Hi, I am facing a problem 
> >> > I do a svn diff | lsdiff 
> >> > I got file in random order , also happens with svn status 
> >> 
> >> Correct, Subversion does not output these in a sorted order.
> >
> > but one month ago , svn diff have always same output , now it is
> > random , is a bug or regression.
> 
> That's the result of a change in the APR hash table implementation.
> Subversion often uses "hash order" and in the past this was always the
> same for a given set of hash keys.  The new APR implementation means
> that this order is no longer constant.
> 
> > why the output shouldn't be sorted by name or something else ? 
> > or why svn don't have a sort option this is insane . 
> 
> It could be done but nobody has done it yet, the APR change is only a
> few weeks old.  Sorting may need to be optional as there is a cost to
> sorting that not everybody would want.

I am a volunteer to change code to do a constant sort on svn diff and
status and test it , I think that is more quick that do an external
function to do that for me . 
I don't know any ideas for have a constant of this outputs ? 

Thanks,
-- 
Sérgio M. B.



checksum assert fail

2012-03-20 Thread Lucian Smith
So, I did something dumb in subversion and got a nice error message 
telling me to tell you what I did so that in case someone else is as goofy 
as I, the program won't crash next time.  So here I am!

What I did was, on Windows 7 using Tortoise SVN, created some new files 
and slated them for addition with 'svn add'.  But then I never committed 
them, and went off and did other things.

Later, on a different computer, I realized I hadn't actually committed 
those files yet, and since I had a copy of them, I went ahead and added 
them, then committed the change.

Later still, back on my Windows machine, I wanted to do an svn update.  
But the little blue 'plus' from tortoise was looking at me, forlorn, and I 
thought, "Self, I don't want my pending add to mess up my svn update!  I 
better delete those files first."

So I did.

And then I ran SVN update, and it failed horribly and I said to myself, 
"oops."  I've since tried to run 'cleanup' and things are still broken, 
and I'm getting the following message, which is pretty similar (if not 
exactly the same) as the one I got originally:

---
Subversion Exception!
---
Subversion encountered a serious problem.
Please take the time to report this on the Subversion mailing list
with as much information as possible about what
you were trying to do.
But please first search the mailing list archives for the error message
to avoid reporting the same problem repeatedly.
You can find the mailing list archives at
http://subversion.apache.org/mailing-lists.html

Subversion reported the following
(you can copy the content of this dialog
to the clipboard using Ctrl-C):

In file
 
'D:\Development\SVN\Releases\TortoiseSVN-1.7.1\ext\subversion\subversion\libsvn_wc\workqueue.c'
 line 672: assertion failed (checksum != NULL)
---
OK   
---

If there's something I can do about this besides re-checking out this 
directory, that'd be great, but if not, ah, well.

-Lucian


Re: SVN externals (externals failed, already locked)

2012-03-20 Thread Matthew J Fletcher

On 20/03/12 23:58, Philip Martin wrote:

Matthew J Fletcher  writes:


I've been expermenting with SVN externals and found an issue which i
dont fully understand. My repository is as follows;


--

+Play (with and extern to URL "https://swserver:8443/svn/Play/Shared
Sources" Local Path "Project 3")

- Project 3 (externed)
->  shared.txt

- Project 2 (with an extern to URL
"https://swserver:8443/svn/Play/Shared Sources" Local Path "Outstation
Files")
->  ->  Outstation Files (externed)
->  ->  ->  shared.txt
->  ->  unieque.txt

->  Project 1 (with an extern to URL
"https://swserver:8443/svn/Play/Shared Sources" Local Path "osfiles")
->  ->  osfiles (externed)
->  ->  ->  shared.txt
->  ->  unieque.txt

- Shared Sources
->  shared.txt


I'm having difficulty making sense of that description.

svnadmin create repo
svn co file://`pwd`/repo wc
svn mkdir wc/Play
svn mkdir wc/Play/SharedSources
echo foo>  wc/Play/SharedSources/shared.txt
svn add wc/Play/SharedSources/shared.txt
svn mkdir wc/Play/Project1
svn mkdir wc/Play/Project2
svn ps svn:externals '^/Play/SharedSources Outstation' wc/Play/Project1
svn ps svn:externals '^/Play/SharedSources osfiles' wc/Play/Project2
svn ps svn:externals '^/Play/SharedSources Project3' wc/Play
# or maybe one svn:externals on Play
# ^/Play/SharedSources Project3
# ^/Play/SharedSources Project2/Outstation
# ^/Play/SharedSources Project1/osfiles
svn ci -mm wc
svn up wc

echo mod>>  wc/Play/SharedSources/shared.txt
svn ci -mm wc
svn up wc


I am not sure how that corresponds to what i created via TortoiseSVN, i 
will use the commandline when i have access to the repository again and 
post the results.






All the externs work as expected and changes to files in "Shared
Sources" are reflected across the 3 projects. However when doing an
update/checkout i get the following error " 'External failed Project
3' is allready locked via ."


I don't understand that either.  How can the externs "work as expected"
if neither checkout nor update work?


I suspect that its because i am external'ing not into a seperate
folder, whereas in "Project 1" and "Project 2" the "Shared Sources" go
in there own folder. However the externals do work as expected.






Maybe completes with errors would be a better description, see log of 
update command. Extern file is updated into all 3 externed places, but 
the extern for "project 3" gives an error.


-

Updating: C:\Users\mfletcher\Desktop\Play22
Updated: C:\Users\mfletcher\Desktop\Play22\Project 3\shared 1.txt
Updated: C:\Users\mfletcher\Desktop\Play22\Shared Sources\shared 1.txt
External: C:\Users\mfletcher\Desktop\Play22\Project 1\osfiles
Updating: C:\Users\mfletcher\Desktop\Play22\Project 1\osfiles
Updated: C:\Users\mfletcher\Desktop\Play22\Project 1\osfiles\shared 1.txt
Completed: C:\Users\mfletcher\Desktop\Play22\Project 1\osfiles - at 
revision: 71

External: C:\Users\mfletcher\Desktop\Play22\Project 2\Outstation Files
Updating: C:\Users\mfletcher\Desktop\Play22\Project 2\Outstation Files
Updated: C:\Users\mfletcher\Desktop\Play22\Project 2\Outstation 
Files\shared 1.txt
Completed: C:\Users\mfletcher\Desktop\Play22\Project 2\Outstation Files 
- at revision: 71

External: C:\Users\mfletcher\Desktop\Play22\Project 3
External failed: C:\Users\mfletcher\Desktop\Play22\Project 3
Error: 'C:\Users\mfletcher\Desktop\Play22\Project 3' is already locked via
Error:  'C:\Users\mfletcher\Desktop\Play22'.
Completed: C:\Users\mfletcher\Desktop\Play22\Project 3 - at revision: 71




Thanks for taking a look at this.

---
Matthew J Fletcher
amimjf(at)sky.com
www.amimjf.org
---