summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-12-02 15:57:30 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-12-02 15:57:30 -0400
commit89f69251dd0113663b1995f56a9ce6d17be6e498 (patch)
treeec4caa7cc827dfaeb5b903024b1e478670daf1a8
parentb38a482dd99a4f16c9752190e929b7726aba4c83 (diff)
webapp: Fix bugs that could result in a relative path such as "." being written to ~/.config/git-annex/autostart
and ignore any such relative paths in the file This was a reversion caused by the relative path changes in 5.20150113.
-rw-r--r--Config/Files.hs15
-rw-r--r--debian/changelog4
-rw-r--r--doc/bugs/A_weird___34__.__34___repository_shows_up_when_switching.mdwn1
-rw-r--r--doc/bugs/A_weird___34__.__34___repository_shows_up_when_switching/comment_2_ffe8e30474e87e8cfa5aee2a3acb0952._comment24
4 files changed, 40 insertions, 4 deletions
diff --git a/Config/Files.hs b/Config/Files.hs
index 294eae22a..8f8b4c115 100644
--- a/Config/Files.hs
+++ b/Config/Files.hs
@@ -26,8 +26,11 @@ autoStartFile = userConfigFile "autostart"
readAutoStartFile :: IO [FilePath]
readAutoStartFile = do
f <- autoStartFile
- nub . map dropTrailingPathSeparator . lines
+ filter valid . nub . map dropTrailingPathSeparator . lines
<$> catchDefaultIO "" (readFile f)
+ where
+ -- Ignore any relative paths; some old buggy versions added eg "."
+ valid = isAbsolute
modifyAutoStartFile :: ([FilePath] -> [FilePath]) -> IO ()
modifyAutoStartFile func = do
@@ -42,12 +45,16 @@ modifyAutoStartFile func = do
- present, it's moved to the top, so it will be used as the default
- when opening the webapp. -}
addAutoStartFile :: FilePath -> IO ()
-addAutoStartFile path = modifyAutoStartFile $ (:) path
+addAutoStartFile path = do
+ path' <- absPath path
+ modifyAutoStartFile $ (:) path'
{- Removes a directory from the autostart file. -}
removeAutoStartFile :: FilePath -> IO ()
-removeAutoStartFile path = modifyAutoStartFile $
- filter (not . equalFilePath path)
+removeAutoStartFile path = do
+ path' <- absPath path
+ modifyAutoStartFile $
+ filter (not . equalFilePath path')
{- The path to git-annex is written here; which is useful when cabal
- has installed it to some awful non-PATH location. -}
diff --git a/debian/changelog b/debian/changelog
index 42295c91d..ea54b99b4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -14,6 +14,10 @@ git-annex (5.20151117) UNRELEASED; urgency=medium
* addurl, importfeed: Changed to honor annex.largefiles settings,
when the content of the url is downloaded. (Not when using --fast or
--relaxed.)
+ * webapp: Fix bugs that could result in a relative path such as "."
+ being written to ~/.config/git-annex/autostart, and ignore any such
+ relative paths in the file.
+ This was a reversion caused by the relative path changes in 5.20150113.
-- Joey Hess <id@joeyh.name> Mon, 16 Nov 2015 16:49:34 -0400
diff --git a/doc/bugs/A_weird___34__.__34___repository_shows_up_when_switching.mdwn b/doc/bugs/A_weird___34__.__34___repository_shows_up_when_switching.mdwn
index 4bb1fc0e2..357517b0e 100644
--- a/doc/bugs/A_weird___34__.__34___repository_shows_up_when_switching.mdwn
+++ b/doc/bugs/A_weird___34__.__34___repository_shows_up_when_switching.mdwn
@@ -23,3 +23,4 @@ there is nothing relevant to this error in there unfortunately.
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
+> [[fixed|done]] --[[Joey]]
diff --git a/doc/bugs/A_weird___34__.__34___repository_shows_up_when_switching/comment_2_ffe8e30474e87e8cfa5aee2a3acb0952._comment b/doc/bugs/A_weird___34__.__34___repository_shows_up_when_switching/comment_2_ffe8e30474e87e8cfa5aee2a3acb0952._comment
new file mode 100644
index 000000000..e83842dea
--- /dev/null
+++ b/doc/bugs/A_weird___34__.__34___repository_shows_up_when_switching/comment_2_ffe8e30474e87e8cfa5aee2a3acb0952._comment
@@ -0,0 +1,24 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2015-12-02T19:36:14Z"
+ content="""
+Found this in the changelog:
+
+ * webapp: When adding another local repository, and combining it
+ with the current repository, the new repository's remote path
+ was set to "." rather than the path to the current repository.
+ This was a reversion caused by the relative path changes in 5.20150113.
+
+I guess this is a similar problem, although it seems that the "." in your case
+made it into `~/.config/git-annex/autostart`
+
+I found two ways to do that. One is to tell the webapp to make a repository, and
+enter "." as the repository location. The other, which is probably what you
+did, is to go to Configuration -> Preferences and uncheck "Auto start", save
+and then go back and check it. This wrongly puts in a "." instead of the full
+repo path.
+
+I've fixed all code paths to force absolute paths in the autostart file,
+and made any relative paths that got in there be ignored.
+"""]]